XPath来获取节点名称的唯一值(Xpath for getting unique values o

2019-10-20 11:21发布

我有以下XML:

<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检索?

谢谢

Answer 1:

我不认为这可以在一个单一的XPath 1.0表达式来完成,因为这需要谓词的两个嵌套层次与内一个根据外一个,即价值

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

而这是不可能的XPath 1.0中。

这将是XPath 2.0中琐碎

distinct-values(/MyFruits/*/name())


文章来源: Xpath for getting unique values of node names
标签: xml xpath unique