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

6

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

好问题,+1。请看我的答案,其中有一个更短的XPath 2.0解决方案。 - Dimitre Novatchev
2个回答

4

请尝试以下xpath:

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

它将通过检查沙漠代码属性返回不同的沙漠。

2

XPath 2.0解决方案:

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

谢谢@Dimitre-novatchev!我会牢记这些信息。我正在开发VBA/Dom,所以必须使用Xpath 1.0。 - CaBieberach

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接