我想这样做:
// *福
返回名称以 fu 结尾的所有节点,例如<tarfu />
和<snafu />
,但不返回<fubar />
答案 0 :(得分:43)
此答案适用于XPath 1.0 ,其中没有XPath 2.0 standard ends-with() function的等效内容。
以下XPath 1.0表达式选择xml文档中的所有元素,其名称以字符串“fu”结尾:
//*[substring(name(),string-length(name())-1) = 'fu']
答案 1 :(得分:36)
答案 2 :(得分:2)
我在Dimitre Novatchev的回答中挣扎,它不会返回比赛。我知道你的XPath必须有一节告诉“fu”的长度是2。
建议使用字符串长度('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”结尾的元素的匹配