home *** CD-ROM | disk | FTP | other *** search
- <xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
- <xsl:output omit-xml-declaration="yes" indent="yes"/>
-
- <xsl:key name="kCode" match="code" use="."/>
- <xsl:key name="kNr" match="nr" use="../code"/>
- <xsl:key name="kCodeNr" match="nr" use="concat(../code, '|', .)"/>
-
- <xsl:template match="node()"/>
- <xsl:template match="/">
- <total>
- <xsl:apply-templates select="/xml/row/code"/>
- <xsl:text>
</xsl:text>
- </total>
- </xsl:template>
-
- <xsl:template match="code[count(.|key('kCode',.)[1])=1]">
- <xsl:text>
</xsl:text>
- <code c="{.}">
- <subtotal><xsl:value-of select="sum(key('kCode',.)/../weight)"/></subtotal>
-
- <xsl:for-each
- select="key('kNr', .)[count(. | key('kCodeNr', concat(../code, '|', .))[1])=1]">
- <nr n="{.}"><xsl:value-of select="sum(key('kCodeNr', concat(../code, '|', .))/../weight)"/></nr>
- <xsl:text>
</xsl:text>
- </xsl:for-each>
- </code>
- </xsl:template>
-
-
- </xsl:stylesheet>
-
-
-