2011-05-20 74 views
6

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

+0

好问题,1。查看我的答案,获取更短的XPath 2.0解决方案。 – 2011-05-22 02:46:52

回答

4

尝试以下XPath:

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

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

+0

Perfekt!谢谢 – CaBieberach 2011-05-20 10:56:50

2

的XPath 2.0溶液

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

谢谢@ Dimitre-novatchev!我会保持这个信息关闭。我正在开发VBA/Dom,所以我必须使用Xpath 1.0。 – CaBieberach 2011-05-23 07:40:12

相关问题