我想做这个:
//*福
它返回名称以fu结尾的所有节点,例如<tarfu />
and <snafu />
,但不是<fubar />
此答案适用于XPath 1.0,其中没有等效的XPath 2.0 标准 ends-with() 函数。
以下 XPath 1.0 表达式选择 xml 文档中的所有元素,其名称以字符串“fu”结尾:
//*[substring(name(),string-length(name())-1) = 'fu']
我对 Dimitre Novatchev 的回答感到困惑,它不会返回匹配项。我知道您的 XPath 必须有一个部分告诉“fu”的长度为 2。
建议使用 string-length('fu') 来确定要子串的内容。
对于那些无法通过他的答案获得结果并且他们需要使用 xpath 1.0 解决方案的人:
//*[substring(name(), string-length(name()) - string-length('fu') +1) = 'fu']
查找以“fu”结尾的元素的匹配项
或者
//*[substring(name(), string-length(name()) - string-length('Position') +1) = 'Position']
查找以“Position”结尾的元素的匹配项