我的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 \")
答案 0 :(得分:43)
我有一个类似的问题,我必须解压缩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>
希望这有帮助。