我无法使XPath函数正常工作。我应该只提取XML文件中名称以字母'z'结尾的条目,而我无法使其正常工作。我是xmllint用cat命令来操纵文件。
ends-with()
仅适用于XPath 2.0,并且我很确定服务器仅具有XPath 1.0,因此我尝试输入以下命令:
cat //country/city[substring(@name, string-length(@name) - string-length('z') +1)]/name
但是我不断收到错误消息,并且不确定是否编写不正确或不是正确的处理方法。
您的XPath缺少检查返回值substring()
是否等于期望的字符串结束值的步骤"z"
。因此正确的XPath将是:
//country[substring(@name, string-length(@name) - string-length('z') +1) = 'z']/@name
由于-string-length('z') +1
等于0
,因此可以省略该部分以获得更简单的XPath,类似于@Kirill Polishchuk在另一个答案中发布的内容。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句