|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: Adjusting sorted list
Hello Andrew,
How about this:
<xsl:stylesheet version='1.0'
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<xsl:key name='bs' match ='b' use='.'/>
<xsl:template match='/'>
<xsl:apply-templates select='*'/>
</xsl:template>
<xsl:template match ="a">
<xsl:variable name='uniques' select='b[count(. | key("bs",
.)[1]) = 1]'/>>
<xsl:for-each select='b'>
<xsl:sort select='.'/>
<xsl:copy>
<xsl:attribute name='rank'>
<xsl:value-of
select='count($uniques[. < current()]) + 1'/>
</xsl:attribute>
</xsl:copy>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
It's the only way I can think of doing it.
Tom Weissmann
-----Original Message-----
From: Andrew Timberlake [mailto:andrew.lists@xxxxxxxxx]
Sent: 16 May 2002 15:05
To: XSL-List@xxxxxxxxxxxxxxxxxxxxxx
Subject: Adjusting sorted list
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>
Using xsl:for-each with a sort on b and then using position() I can get
a ranking from 1 to 8 but I have no idea how to achieve the above.
I have dug around in the archives for some ideas but to no avail.
I see that I can't use a variable and adjust it's value with each
iteration (as it's not actually iterating).
I have also looked into using a recursive named template but am not sure
how to achieve the above and sort the output???
Thanks in advance for any help.
Andrew
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








