RE: [xsl] Correctly sorting ID's

Subject: RE: [xsl] Correctly sorting ID's
From: "Niki Dinsey - CSW" <niki.dinsey@xxxxxxxxx>
Date: Tue, 21 Jan 2003 16:25:32 -0000
Thanks for the quick response Américo, unfortunately this didn't help,
the out put for substring is as follows: (different id's but you get the
idea)

<id>CM09.1</id>
<id>CM09.10</id>
<id>CM09.18</id>
<id>CM09.2</id>
<id>CM09.20</id>
<id>CM09.28</id>
<id>CM09.3</id>
<id>CM09.30</id>
<id>CM09.31</id>
<id>CM09.44</id>
<id>CM09.5</id>
<id>CM09.1.5</id>
<id>CM09.3.1.1</id>
<id>CM09.3.2</id>
<id>CM09.3.3.1</id>


Thanks anyway

Niki


-----Original Message-----
From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx
[mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of Américo
Albuquerque
Sent: 21 January 2003 15:45
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: RE: [xsl] Correctly sorting ID's

Hi Niki.
You are sorting strings, not numbers, so you'll have to change a bit
your sorting criteria:
<xsl:sort select="substring(node()/@id,3)" data-type="number"/>

Hope this helps you.

-----Original Message-----
From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx
[mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of Niki Dinsey
- CSW
Sent: terça-feira, 21 de Janeiro de 2003 15:24
To: xsl-list-digest@xxxxxxxxxxxxxxxxxxxxxx
Subject: [xsl] Correctly sorting ID's


Hi there list guru's, I have a question.

In a transform, is it possible to correctly sort these poorly formed
id's listed below

Currently my standard sort:

<xsl:apply-templates>
	<xsl:sort select="node()/@id"/>
</xsl:apply-templates>

Returns this:

<someNode id="CM09.1"/>
<someNode id="CM09.1.5"/>
<someNode id="CM09.10"/>
<someNode id="CM09.10.10.3"/>
<someNode id="CM09.10.15"/>
<someNode id="CM09.18.2"/>
<someNode id="CM09.2"/>
<someNode id="CM09.2.2"/>
<someNode id="CM09.22"/>
<someNode id="CM09.22.1"/>

it's the old classic... 1 then 10 before 2 etc.

I really need them sorted like the following:

<someNode id="CM09.1"/>
<someNode id="CM09.1.5"/>
<someNode id="CM09.2"/>
<someNode id="CM09.2.2"/>
<someNode id="CM09.10"/>
<someNode id="CM09.10.10.3"/>
<someNode id="CM09.10.15"/>
<someNode id="CM09.18.2"/>
<someNode id="CM09.22"/>
<someNode id="CM09.22.1"/>

I'm looking now to see if I can work this out and I was wondering if
anybody would be able to help me with the correct sort selection.

The only other issue to be aware of is that the dots can go on
indefinitely and I don't know until runtime the highest number of dot's
in the any one id will be.

If anybody could point me to a resource that deals with this I would be
most grateful.

Regards,

Niki Dinsey



 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread