Subject: Re: Adjusting sorted list
From: Jeni Tennison <jeni@xxxxxxxxxxxxxxxx>
Date: Thu, 16 May 2002 16:35:55 +0100
|
Andrew Timberlake wrote:
> I have the following XML:
> <a>
> <b>4</b>
> <b>9</b>
> <b>6</b>
> <b>1</b>
> <b>8</b>
> <b>6</b>
> <b>4</b>
> <b>7</b>
> </a>
>
> I am trying to generate the following ouput:
> <a>
> <b rank="1">1</b>
> <b rank="2">4</b>
> <b rank="2">4</b>
> <b rank="3">6</b>
> <b rank="3">6</b>
> <b rank="4">7</b>
> <b rank="5">8</b>
> <b rank="6">9</b>
> </a>
For interest, the XSLT 2.0 version would be:
<xsl:template match="a">
<a>
<xsl:for-each-group select="b" group-by="." />
<xsl:sort select="." />
<xsl:variable name="rank" select="position()" />
<xsl:for-each select="current-group()">
<b rank="{$rank}">
<xsl:value-of select="." />
</b>
</xsl:for-each>
</xsl:for-each-group>
</a>
</xsl:template>
Cheers,
Jeni
---
Jeni Tennison
http://www.jenitennison.com/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|