This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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[. &lt; 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@ddd.co.za]
Sent: 16 May 2002 15:05
To: XSL-List@lists.mulberrytech.com
Subject: [xsl] 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]