在XPATH中是否可以从有许多相同元素的节点中选择一个唯一元素列表?
<Deserts>
<Desert Code="C1">Popsicle<Desert>
<Desert Code="H2">Ice Cream<Desert>
<Desert Code="C1">Popsicle<Desert>
<Desert Code="T1">Cheese Cake<Desert>
</Deserts>
在这个例子中,我希望结果列表只有3个节点(冰棒/冰淇淋/芝士蛋糕)。
如何使用Xpath选择这样的列表?
答案 0 :(得分:4)
尝试以下xpath:
/Deserts/Desert[not(@Code=preceding-sibling::Desert/@Code)]
通过查看“沙漠代码”属性,它将返回不同的沙漠。
答案 1 :(得分:2)
XPath 2.0解决方案:
(/*/*/@Code)[index-of(/*/*/@Code,.)[1]]