我想从我的XML文件中获取一个节点,该节点有一个前缀,例如"latest_",但这可能会改变,我希望我的XSLT尽可能流畅.这是我想要使用的XPath:
/data/stats/*_cost
Run Code Online (Sandbox Code Playgroud)
这应该与latest_cost
,newest_cost
,anything_cost
,有没有这样做的一种方式?
干杯:-)
小智 66
这是正确的XPath 1.0表达式,它在任何命名空间中选择一个名称等于"_cost"的最后5个字符的元素.
/data/stats/*[substring(name(), string-length(name()) - 4) = '_cost']
Run Code Online (Sandbox Code Playgroud)
你也可以用 contains
例如
/data/stats[contains(.,'_cost')]
Run Code Online (Sandbox Code Playgroud)
小智 7
以上对我不起作用。我不得不“稍微”修改如下:
/data/stats/*[contains(name(),'_cost')]
Run Code Online (Sandbox Code Playgroud)
使用XPath 1.0,您可以使用/data/stats/*[substring-after(name(), '_cost') = '']
模式.检查元素的名称是否以_cost
后缀结尾.
在XPath 2.0中,有fn:ends-with(str, str)
相应的表达式*[ends-with(name(), '_cost')]
.
归档时间: |
|
查看次数: |
77862 次 |
最近记录: |