节点名称上的XPath通配符
我想从我的XML文件中获取一个节点,该节点有一个前缀,如“latest_”,但这可能会改变,我渴望我的XSLT尽可能stream畅。 这是我想要使用的XPath:
/data/stats/*_cost
这应该匹配latest_cost
, newest_cost
, anything_cost
,有没有办法做到这一点?
干杯:-)
这是正确的XPath 1.0expression式,select一个名称最后5个字符等于“_cost”的任何名称空间的元素。
/data/stats/*[substring(name(), string-length(name()) - 4) = '_cost']
使用XPath 1.0,你可以使用/data/stats/*[substring-after(name(), '_cost') = '']
模式。 这检查元素的名称是否以_cost
后缀结尾。 在XPath 2.0中有fn:ends-with(str, str)
,相应的experssion将会是*[ends-with(name(), '_cost')]
。
你也可以使用contains
例如
/data/stats[contains(.,'_cost')]