Hi,
I did not see any response on this (except for one who said he used Perl
instead), so I tried myself.
The templates below, I thought would do what was wanted, but I only get it
to sort on the 1st level, not on the second level. I do not know why.
Does anybody else have a solution, and can anyone tell me why my solution
does not work?
Regards,
Ragulf Pickaxe :)
<xsl:template match="/">
<output>
<xsl:apply-templates select="input"/>
</output>
</xsl:template>
<xsl:template match="input">
<xsl:apply-templates select="node">
<xsl:sort select="node/rank" data-type="number"
order="ascending"/>
</xsl:apply-templates>
</xsl:template>
<xsl:template match="node">
<node>
<xsl:copy-of select="rank"/>
<xsl:apply-templates select="node">
<xsl:sort select="node/rank" data-type="number" order="ascending"/>
</xsl:apply-templates>
</node>
</xsl:template>
<input>
<node>
<rank>2</rank>
<node>
<rank>88</rank>
</node>
<node>
<rank>7</rank>
</node>
<node>
<rank>66</rank>
</node>
</node>
<node>
<rank>1</rank>
<node>
<rank>3</rank>
</node>
<node>
<rank>2</rank>
</node>
<node>
<rank>1</rank>
</node>
</node>
</input>
The output I get on this is:
<output>
<node>
<rank>1</rank>
<node>
<rank>3</rank>
</node>
<node>
<rank>2</rank>
</node>
<node>
<rank>1</rank>
</node>
</node>
<node>
<rank>2</rank>
<node>
<rank>88</rank>
</node>
<node>
<rank>7</rank>
</node>
<node>
<rank>66</rank>
</node>
</node>
</output>
_________________________________________________________________
MSN 8 with e-mail virus protection service: 2 months FREE*
http://join.msn.com/?page=features/virus
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list