50
  • 我不想创建 XML 文件
  • 我需要使用 --shell 和 cat 来创建过滤器
  • 我的 xmllint 版本中没有 xpath,使用libxml2-2.7.6-14.el6.x86_64

    xml|xmllint --shell - <<< $(echo 'cat /')

    -:1: parser error : Start tag expected, '<' not found

编辑:clustat -x输出一个 XML 文件,我想解析出活动节点。我认为没有 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 \")
4

1 回答 1

65

我有一个类似的问题,我必须解压缩一个 XML 文件,然后将它提供给xmllint。关键是告诉xmllintstdin读取的“-”选项。

例如:

$ 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>

希望这可以帮助。

于 2013-12-13T15:35:55.913 回答