Re: [xsl] Natural Sort

Subject: Re: [xsl] Natural Sort
From: andrew welch <andrew.j.welch@xxxxxxxxx>
Date: Tue, 24 Jan 2006 12:06:24 +0000
On 1/24/06, Rudi Starcevic <tech@xxxxxxxxxxxx> wrote:
> Hi,
>
>  I'm having trouble sorting my output.
>
> Using PHP as an example there is 'sort' and 'natural_sort' functions.
>
> This is my current output, I'm wanting the output to list from media1
> not from media10.
>
> I've searched the archives but so far I've not found anything, mostly
> been searching under 'natural sort' so this could be a good one to add.
>
> Any advice much appreciated ...
>
> Sample Output:
>
>  media10.mysite.com
>  media11.mysite.com
>  media12.mysite.com
>  media13.mysite.com
>  media14.mysite.com
>  media15.mysite.com
>  media1.mysite.com
>  media2.mysite.com
>  media3.mysite.com
>  media4.mysite.com
>  media5.mysite.com
>  media6.mysite.com
>  media7.mysite.com
>  media8.mysite.com
>  media9.mysite.com
>
> Sample XML:
>
> <servers>
>  <server dn="media1.mysite.com" id="server392" os="FreeBSD 5.1"/>
>  <server dn="media2.mysite.com" id="Server488" os="Fedora Core 1"/>
>     ...
>  <server dn="media10.mysite.com" id="Server433" os="Fedora Core 1"/>
> </servers>
>
> Sample XSL:

Substring out the number and then use that, eg:

<xsl:sort select="substring-after(substring-before(@dn, '.'),
'media')" data-type="number" order="ascending"/>

cheers
andrew

Current Thread