2014-07-16 2 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> 

내가 그들 (애플, 망고 오렌지) 사이에만 독특한 과일 싶어

누구에 XPath를 제안 할 수 있습니다 XPath 1.0을 사용하여 검색 하시겠습니까?

감사

는 외부 하나의 값에 따라 내부 하나 술어의 두 개의 중첩 수준을 필요로하기 때문에 나는이 생각하지 않습니다

답변

3

가 하나의 XPath 1.0 표현으로 수행 할 수 있습니다, 즉

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

및 XPath 1.0에서는 가능하지 않습니다.

distinct-values(/MyFruits/*/name()) 
XPath는 2.0에서 사소한 것