我有以下XML:
<RootNode>
<innerNode name="x1"/>
<innerNode name="x2"/>
<innerNode name="x1"/>
<innerNode name="x3"/>
</RootNode>
我如何使用XPATH找到并且没有迭代结果,innerNode具有重复的名称? (在上面的例子中,x1是重复的。)
答案 0 :(得分:2)
以下XPath将返回innerNode
个元素,其中name
属性在兄弟innerNode
元素中有重复:
//innerNode[
@name = following-sibling::innerNode/@name
or
@name = preceding-sibling::innerNode/@name
]
<强> demo
强>
答案 1 :(得分:1)
作为更全面的解决方案,改编自answer from a similar question:
//innerNode[
@name = following::innerNode/@name
or
@name = preceding::innerNode/@name
]
即使在嵌套innerNode
元素的情况下,也会发现重复项:
<RootNode>
<innerNode name="x1">
<innerNode name="x1" />
<innerNode name="x2" />
</innerNode>
<innerNode name="x2">
<innerNode name="x3" />
</innerNode>
</RootNode>