Re: [xsl] Sorting and re-ordering down a hierarchy

Subject: Re: [xsl] Sorting and re-ordering down a hierarchy
From: "Ragulf Pickaxe" <jawxml@xxxxxxxxxxx>
Date: Tue, 22 Jul 2003 08:21:24 +0000
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



Current Thread