Re: [xsl] Grouping while sorting

Subject: Re: [xsl] Grouping while sorting
From: "Ragulf Pickaxe" <jawxml@xxxxxxxxxxx>
Date: Tue, 23 Nov 2004 14:20:10 +0000
Doh!

Found the solution - after having gone from the problem, then looking at it again - must have been overly tired... The solution was really simple.

(A small scetch of the solution is given for those interested - the question/problem can be found in yesterdays post with the same name)

Regards,
Ragulf Pickaxe :-)


<xsl:key name="elems" match="Elem" use="@GroupID" />


<xsl:template match="Root">
<xsl:for-each select="Elem[generate-id(.) =
generate-id(key('elems', @GroupID)[1])][Condition1]">
<Group><xsl:value-of select="@GroupID" /></Group>
<xsl:for-each select="key('elems', @GroupID)">
<xsl:sort select="@Order" data-type="number" />
<xsl:value-of select="." /> -
</xsl:for-each>
</xsl:for-each>


<xsl:for-each select="Elem[generate-id(.) =
generate-id(key('elems', @GroupID)[1])][Condition2]">
<Group><xsl:value-of select="@GroupID" /></Group>
<xsl:for-each select="key('elems', @GroupID)">
<xsl:sort select="@Order" data-type="number" />
<xsl:value-of select="." /> -
</xsl:for-each>
</xsl:for-each>


<xsl:for-each select="Elem[generate-id(.) =
generate-id(key('elems', @GroupID)[1])][Condition3]">
<Group><xsl:value-of select="@GroupID" /></Group>
<xsl:for-each select="key('elems', @GroupID)">
<xsl:sort select="@Order" data-type="number" />
<xsl:value-of select="." /> -
</xsl:for-each>
</xsl:for-each>
.....
</xsl:template>


Where I can use templates to make the code more succint.

_________________________________________________________________
FREE pop-up blocking with the new MSN Toolbar - get it now! http://toolbar.msn.click-url.com/go/onm00200415ave/direct/01/


Current Thread