首页 > 解决方案 > XML XPATH 属性

问题描述

谁能帮我只用一种 xpath 语法获取 Z NAMES 数据?

<fields>
 <field name="Z01NAME">Romulo</field>
 <field name="Z02NAME">Marco</field>
 <field name="Z03NAME">Tan</field>
 <field name="X01NAME">Joseph</field>
 <field name="X02NAME">EXB</field>
</fields>

我试过/fields/field[@name="Z*NAME"]了,但它不起作用。感谢帮助!

标签: xmlxpath

解决方案


XPath 1.0不支持通配符或正则表达式。您可以使用starts-with(), 函数解决问题。要实现ends-with()功能,请使用@IanRoberts' answer。所以,最后的表达式是

/fields/field[starts-with(@name,'Z') and substring(@name, string-length(@name) - string-length('NAME') +1) = 'NAME']

推荐阅读