我有以下 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 1.0 进行检索的 XPath 吗?
谢谢
最佳答案
我认为这不能在单个 XPath 1.0 表达式中完成,因为它需要两层嵌套的谓词,其中内部谓词取决于外部谓词的值,即
/MyFruits/*[not(preceding-sibling::*[name() = name(node-from-outer-predicate)])]
这在 XPath 1.0 中是不可能的。
这在 XPath 2.0 中是微不足道的
distinct-values(/MyFruits/*/name())
关于xml - 用于获取节点名称的唯一值的 Xpath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24779946/