【发布时间】:2016-04-26 17:26:13
【问题描述】:
我想使用 XPath 选择几个以相同单词结尾的节点并检查它们是否彼此相等。所以,例如,
<a>
<b-token>123456789</b-token>
...
<c>
<d>
<d-token>123456789</d-token>
...
</d>
<e>
<e-token>123456789</e-token>
...
</e>
<f>
<f-token>123456789</f-token>
...
</f>
<c>
</a>
所以,我想搜索所有以“-token”结尾的节点并确保它们是等价的。这可以在 XPath 1.0 中完成吗? 2.0? XSD?
这是一个我虽然可以工作的示例 XPath,但它没有
String xpathExpression = "/descendant-or-self::node()/*[substring(name(), string-length(name() ) - (string-length('token')-1) ) = 'token'] = /descendant-or-self::node()/*[substring(name(), string-length(name() ) - (string-length('token')-1) ) = 'token']";
当我像这样在 '=' 之后放置一个特定值时,它会起作用:
String xpathExpression = "/descendant-or-self::node()/*[substring(name(), string-length(name() ) - (string-length('token')-1) ) = 'token'] = '123456789'";
如果重要的话,我正在使用 Java 7。
谢谢
【问题讨论】:
标签: xml xpath compare equals nodelist