2011-05-20 77 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