我有一个XPath表达式,它提供了一个如下所示的值序列:
1 2 2 3 4 5 5 6 7
使用distinct-values()
可以很容易地将其转换为唯一值序列1 2 3 4 5 6 7
。但是,我想提取的是重复值列表= 2 5
。我想不出一个简单的方法来做这件事。有人能帮上忙吗?
发布于 2008-09-25 18:14:46
下面是什么:
distinct-values(
for $item in $seq
return if (count($seq[. eq $item]) > 1)
then $item
else ())
这将遍历序列中的项,如果序列中等于该项的项数大于1,则返回该项。然后,您必须使用distinct-values()
从该列表中删除重复项。
发布于 2008-09-25 13:23:56
计算原始集合和不同值集合之间的差异。这是一组多次出现的数字。请注意,如果此结果集中的数字在原始序列中出现两次以上,则它们不一定是不同的,因此如果需要,请再次转换为一组不同的值。
发布于 2008-09-28 20:50:01
那么xslt呢?它是否适用于您的请求?
<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>
https://stackoverflow.com/questions/133092
复制相似问题