xml - 用于获取节点名称的唯一值的 Xpath

标签 xml xpath unique

我有以下 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/

相关文章:

java xsl模板匹配

selenium - 机器人框架: passing argument to a keyword that returns an XPath

html - xpath获取以特定字符或字符串开头的数据

python - Numpy.unique 行为(扁平化不一致?)

PHP显示只要字段是唯一的

php - Symfony2 覆盖 User.orm.xml

java - 将 TextView 转换为超链接

java - 解码为soap webservice 中的通用类型 xml 中的任何类型

php,xml从具有不同属性的标签输出整个值

跨多个列的 PostgreSQL 唯一值