• 我不想创建XML文件
  • 我需要使用--shell和cat来创建过滤器
  • 我使用libxml2-2.7.6-14.el6.x86_64在我的xmllint版本中没有xpath
    xml|xmllint --shell - <<< $(echo 'cat /')-:1: parser error : Start tag expected, '<' not found

  • 编辑:clustat -x输出一个XML文件,我想解析出 Activity 节点。
    我不认为没有xpath可以做到这一点,所以我创建了一个临时xml文件。
    /usr/sbin/clustat -x > /tmp/clustat.xml
    ACTIVENODE=$(xmllint --shell /tmp/clustat.xml <<< `echo 'cat //group/@owner'`|grep -v "^/ >"|cut -d= -f2|tr -d \")
    

    最佳答案

    我遇到了类似的问题,我必须解压缩XML文件,然后将其提供给 xmllint 。密钥是“-”选项,它告诉 xmllint stdin 中读取。

    例如:

    $ bzip2 -dc dierehabilitati00delagoog_meta.xml.bz2 | xmllint --format
    

    将无法给出xmllint的“用法”。添加“-”有效:
    $ bzip2 -dc dierehabilitati00delagoog_meta.xml.bz2 | xmllint --format -
    <?xml version="1.0"?>
    <metadata>
      <title>Die Rehabilitation im Strafrecht</title>
      <creator>Ernst Delaquis</creator>
      <mediatype>texts</mediatype>
      <collection>americana</collection>
    </metadata>
    

    希望这可以帮助。

    关于xmllint - 如何使Xmllint从stdin读取?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19914363/

    10-11 20:41