RE: [xsl] Sorting alpha numeric values

Subject: RE: [xsl] Sorting alpha numeric values
From: "Michael Kay" <mhk@xxxxxxxxx>
Date: Fri, 9 May 2003 08:54:26 +0100
Use two sort keys, one for the alpha part and one for the numeric part:

<xsl:sort select="translate(@val, '0123456789', '')"/>
<xsl:sort select="translate(@val, 'ABCDE....Z', '')"
data-type="number"/>

Michael Kay

> -----Original Message-----
> From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx 
> [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of Hugh Dixon
> Sent: 09 May 2003 06:07
> To: XSL-List@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] Sorting alpha numeric values
> 
> 
> I have a data set:
> <Root>
> <Elem val = "A1"/>
> <Elem val = "A2"/>
> <Elem val = "A21"/>
> <Elem val = "A3"/>
> </Root>
> 
> And a template:
> 
> <xsl:template match="/">
>   <xsl:for-each select="./Root/Elem">
>     <xsl:sort select="@val"/>
>     <xsl:value-of select="./@val"/>
>   </xsl:for-each>
> </xsl:template>
> 
> I was hoping to sort the Elems into
> A1
> A2
> A3
> A21
> 
> But I cannot get a hybrid alpha/numeric sort happening.  Is 
> there some setting I'm missing, or could someone suggest how 
> I can do this.  The ability to create a custom routine on 
> which to compare the values would be handy, although I 
> suspect the performance could be an issue.
> 
> Thanks in Advance!!
> 
> Hugh Dixon
> 
> 
>  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