我有一些xml文档,我想对其执行xquery操作。 xmllint似乎通过返回与查询相匹配的节点来完成我想要的操作。这并不能帮助我,因为这个节点可能存在很多地方,我不知道匹配的位置。xmllint输出的xpath
一个非常简单的例子是xmllint -xpath '//关机[文本()= “假”]'回报:<shutdown>false</shutdown><shutdown>false</shutdown><shutdown>false</shutdown><shutdown>false</shutdown><shutdown>false</shutdown>
。
这告诉我有匹配的节点,但不是哪个节点。有没有获得返回节点的实际xpath的方法?我一直无法找到任何东西。
尽管给出的示例也可以在编辑器中对XML文档进行grep处理,但对于更复杂的查询,这种方法是不可能的。
'FN:路径()'(HTTP ://www.w3.org/TR/xp ath-functions-30 /#func-path)是你正在寻找的。但是,这是XQuery 3.0,我不认为xmllint支持它。如果你不必使用这个工具,BaseX和eXist是两个开源的XQuery 3.0处理器。 'basex -q'//关闭[文本()=“false”] /路径()''工作是什么。 – dirkk
谢谢,我会研究这些组件。 – Allpointsw