我知道有很多解决方案可以删除重复项,但这个稍有不同。如果它是重复的,我需要从输出中删除元素。 输入:XSLT完全删除重复项
<SanctionList>
<row>
<PersonId>1000628</PersonId>
<PersonId>1000634</PersonId>
<PersonId>1113918</PersonId>
<PersonId>1133507</PersonId>
<PersonId>1113918</PersonId>
</row>
</SanctionList>
输出预计:
<SanctionList>
<row>
<PersonId>1000628</PersonId>
<PersonId>1000634</PersonId>
<PersonId>1133507</PersonId>
</row>
</SanctionList>
这里是我试过,但解析器为每个组返回1。因为它在列表中出现两次,它不应该返回2 PersonId 1113918?
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" version="2.0">
<xsl:strip-space elements="*"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="SanctionList">
<xsl:for-each-group select="row" group-by="PersonId">
<xsl:text> Count for </xsl:text>
<xsl:value-of select="current-grouping-key()" />
<xsl:text> is </xsl:text>
<xsl:value-of select="count(current-group())" />
</xsl:for-each-group>
</xsl:template>
</xsl:stylesheet>
谢谢亲切!
欢迎SO模块9
key()
功能。请注意,我们不是一个代码编写服务,而是一群志愿者,帮助解决认真的工作。查看[Muenchian Grouping](http://www.jenitennison.com/xslt/grouping/muenchian.html)了解XSLT 1.0或[for-each-group](http://www.saxonica.com/html/documentation) XSLT 2中的/xsl-elements/for-each-group.html)。0来计算不同的值并删除任何大于1的分组值。 – Parfait谢谢Parfait ..我用你的方向,并寻找每个组。我仍然是noob,当涉及到xslt,所以你的帮助非常感谢。 –
如前所述,'for-each-group'在XSLT 2.0中可用,而不是XSLT 1.0。你的处理器是否容纳2.0? – Parfait