2014-07-16 33 views
1

我有下面的XML:的XPath獲取節點名稱的唯一值

<MyFruits> 
    <Apple>A</Apple> 
    <Apple>19</Apple> 
    <Mango>12</Mango> 
    <Apple>19</Apple> 
    <Orange>A</Orange> 
    <Orange>A</Orange> 
    <Orange>A</Orange> 
    <Apple>B</Apple> 
    <Apple>19</Apple> 
    <Mango>12</Mango> 
    <Apple>19</Apple> 
    <Orange>10</Orange> 
    <Apple>19</Apple> 
    <Orange>10</Orange> 
    <Apple>C</Apple> 
    <Apple>19</Apple> 
    <Mango>12</Mango> 
    <Apple>19</Apple> 
    <Orange>10</Orange> 
    <Apple>19</Apple> 
    <Orange>10</Orange> 
</MyFruits> 

我想其中(蘋果,芒果和Orange)只得到獨特的水果

任何人都可以提出一個XPath來使用XPath 1.0檢索?

感謝

回答

3

我不認爲這可以在一個單一的XPath 1.0表達式來完成,因爲這需要謂詞的兩個嵌套層次與內一個根據外一個的值,即

/MyFruits/*[not(preceding-sibling::*[name() = name(node-from-outer-predicate)])] 

這在XPath 1.0中是不可能的。

這將XPath 2.0中

distinct-values(/MyFruits/*/name()) 
是微不足道