我输入了XML:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<FT>Paket</FT>
<FT>Parti</FT>
<FT>Paket</FT>
<FT>Styche</FT>
<FT>Styche</FT>
</root>
我希望我的输出显示如 -
Paket 2
Parti 1
Styche 2
它将元素的值和值分组。显示重复值的总计数。 就像Paket指出的那样,它在XML中重复了两次。
逻辑如何运作?
答案 0 :(得分:2)
在XSLT 1.0中,使用Muenchian分组:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" indent="yes"/>
<xsl:key name="k" match="FT" use="."/>
<xsl:template match="/*">
<xsl:apply-templates select="FT[generate-id() = generate-id(key('k', .))]"/>
</xsl:template>
<xsl:template match="FT">
<xsl:value-of select="concat(., ' ', count(key('k', .)))"/>
<xsl:text>
</xsl:text>
</xsl:template>
</xsl:stylesheet>
<强>输出:强>
Paket 2
Parti 1
Styche 2