使用XPATH从节点列表中选择唯一元素的列表

时间:2011-05-20 10:20:40

标签: xml dom xpath

在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选择这样的列表?

2 个答案:

答案 0 :(得分:4)

尝试以下xpath:

/Deserts/Desert[not(@Code=preceding-sibling::Desert/@Code)]

通过查看“沙漠代码”属性,它将返回不同的沙漠。

答案 1 :(得分:2)

XPath 2.0解决方案

(/*/*/@Code)[index-of(/*/*/@Code,.)[1]]