xmllint未知选项“--xpath”(xmllint unknown option '-

2019-06-27 02:05发布

我已经看到了这个语法几个地方(例如, 在这里 ):

xmllint --xpath '/plist/array/string/text()' tmp.xml ,用于查询使用XPath选择一个特定的XML节点。 然而,我发现了错误Unknown option --xpath当我尝试我的机器(MAC OS X雪豹)上执行此操作。

在为xmllint man页面更仔细地观察,我没有看到--xpath记录选项...

我只是完全失去了一些东西?

Answer 1:

xmllint --shell tmp.xml <<<'xpath /plist/array/string/text()'

如果您需要xmllint到标准输入读取:

cat /tmp/tmp.xml | xmllint --shell <(cat) <<<'xpath /plist/array/string/text()'


Answer 2:

对于一些人来说是更新不是一个选项。 你必须与给定的版本,由一些其他团队安装工作,你去用它。

您可以通过--shell尝试:

xmllint --shell tmp.xml << EOF
'/plist/array/string/text()'
EOF


Answer 3:

啊,是的,一定是用一个过时版本的问题libxml2

更新libxml2 (至v2.7.8通过MacPorts的)似乎已经解决了这一问题。



Answer 4:

如果你想操作plist从Mac上的命令行的文件,使用PlistBuddy

例如,你可以做这样的事情在一个shell脚本:

BUNDLE_ID=`/usr/libexec/PlistBuddy -c 'Print :CFBundleIdentifier' Info.plist`
echo $BUNDLE_ID

它的功能非常强大,您可以添加/删除数组和字典项,查找键或索引值,复制/合并/导入其他文件等。参见/usr/libexec/PlistBuddy -h全信息。



文章来源: xmllint unknown option '--xpath'
标签: xpath xmllint