首页 > 解决方案 > 如何使用 xpath 查找重复/非不同值

问题描述

给定以下示例 html:

<products>
  <product>
    <sku>10021</sku>
  </product>
  <product>
    <sku>10021</sku>
  </product>
  <product>
    <sku>10022</sku>
  </product>
  <product>
    <sku>10023</sku>
  </product>
  <product>
    <sku>10023</sku>
  </product>
</products>

我知道如何使用 xpath: 找到不同的 sku 值distinct-values(//sku),它将输出:

10021
10022
10023

但是我怎么能得到那些不明显的,所以:

10021
10023

我正在使用 xidel,所以 XPath 3 很好。但是,如果它可以通过 XPath 1 以某种方式完成,最好不使用 XSLT,我也非常想阅读有关它的内容。

标签: xpathduplicatesdistinct-values

解决方案


您可以尝试这个来获取sku文本至少等于另一个文本的节点sku

distinct-values(//sku[.=following::sku])

您也可以像这样在 XPath 1 中执行此操作:

//sku[.=preceding::sku and not(.=following::sku)]

推荐阅读