首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用XPath 2.0识别数字序列中的重复值?

如何使用XPath 2.0识别数字序列中的重复值?
EN

Stack Overflow用户
提问于 2008-09-25 20:44:29
回答 3查看 30.8K关注 0票数 13

我有一个XPath表达式,它提供了一个如下所示的值序列:

1 2 2 3 4 5 5 6 7

使用distinct-values()可以很容易地将其转换为唯一值序列1 2 3 4 5 6 7。但是,我想提取的是重复值列表= 2 5。我想不出一个简单的方法来做这件事。有人能帮上忙吗?

EN

回答 3

Stack Overflow用户

发布于 2008-09-25 18:14:46

下面是什么:

代码语言:javascript
复制
distinct-values(
  for $item in $seq
  return if (count($seq[. eq $item]) > 1)
         then $item
         else ())

这将遍历序列中的项,如果序列中等于该项的项数大于1,则返回该项。然后,您必须使用distinct-values()从该列表中删除重复项。

票数 3
EN

Stack Overflow用户

发布于 2008-09-25 13:23:56

计算原始集合和不同值集合之间的差异。这是一组多次出现的数字。请注意,如果此结果集中的数字在原始序列中出现两次以上,则它们不一定是不同的,因此如果需要,请再次转换为一组不同的值。

票数 0
EN

Stack Overflow用户

发布于 2008-09-28 20:50:01

那么xslt呢?它是否适用于您的请求?

代码语言:javascript
复制
    <xsl:for-each select="/r/a">
        <xsl:variable name="cur" select="." />
        <xsl:if test="count(./preceding-sibling::a[. = $cur]) > 0 and count(./following-sibling::a[. = $cur]) = 0">
            <xsl:value-of select="." />
        </xsl:if>
    </xsl:for-each>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/133092

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档