Subject: RE: Correctly sorting ID's
From: "Niki Dinsey - CSW" <niki.dinsey@xxxxxxxxx>
Date: Tue, 21 Jan 2003 18:26:45 -0000
|
Thank you to everyone for their replies this afternoon, esp. Jeni and
Steven who have given me a working solution to this annoying problem.
Niki Dinsey
-----Original Message-----
From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx
[mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of Michael Kay
Sent: 21 January 2003 17:27
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx;
xsl-list-digest@xxxxxxxxxxxxxxxxxxxxxx
Subject: RE: Correctly sorting ID's
>
> In a transform, is it possible to correctly sort these poorly
> formed id's listed below
If you're prepared to write some recursive XSLT code to transform the
keys, you could achieve this by the technique of prefixing each numeric
component with a digit indicating its length. Thus 1 becomes 11, 10
becomes 210, 15 becomes 215, 109 becomes 3109. This will give you a key
that collates alphabetically.
Michael Kay
Software AG
home: Michael.H.Kay@xxxxxxxxxxxx
work: Michael.Kay@xxxxxxxxxxxxxx
>
> 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
|