Re: [xsl] Special Sort order

Subject: Re: [xsl] Special Sort order
From: "Alexandre Moraes" <alexmoraes@xxxxxxxxx>
Date: Thu, 8 May 2008 12:45:33 -0300
Thank guys! Ir worked well!!

Alexandre

On 5/8/08, Darcy Parker <darcyparker@xxxxxxxxx> wrote:
> I was looking at this problem this morning and like your solution with
> translate() to bias the sort.
>
> To account for cases where Z and 0-9 need to be sorted with Z ahead of
> numbers, I suggest modifying the 2nd <xsl:sort> as follows:
>
> <?xml version="1.0" encoding="utf-8"?>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
>
> <xsl:template match="NLIST">
> 	<xsl:for-each select="NITEM">
> 		<xsl:sort select="translate(PNR,'0123456789','ZZZZZZZZZZ')"/>
> <!--Sorts with numbers pushed to same position as Z-->
> 		<xsl:sort select="translate(PNR,'9876543210Z','ZYXWVUTSRQP')"/>
> <!--Next sort with numbers ahead of Z-->
> 		<xsl:value-of select="."/>
> 	</xsl:for-each>
> </xsl:template>
> </xsl:stylesheet>
>
> Using a modified XML:
> <NLIST>
>    <NITEM>
>      <PNR>AN4</PNR>
>    </NITEM>
>     <NITEM>
>      <PNR>A0B</PNR>
>    </NITEM>
>     <NITEM>
>      <PNR>AZB</PNR>
>    </NITEM>
>    <NITEM>
>      <PNR>7228590-901</PNR>
>    </NITEM>
>    <NITEM>
>      <PNR>291300A</PNR>
>    </NITEM>
>    <NITEM>
>      <PNR>CCR244SS-3-2</PNR>
>    </NITEM>
>    <NITEM>
>      <PNR>7028590-901</PNR>
>    </NITEM>
>     <NITEM>
>      <PNR>MS20995C20</PNR>
>    </NITEM>
>  </NLIST>
>
> Output is:
>
>      AN4
>      AZB
>      A0B
>      CCR244SS-3-2
>      MS20995C20
>      291300A
>      7028590-901
>      7228590-901
>
> Darcy
> On Thu, May 8, 2008 at 8:39 AM, David Carlisle <davidc@xxxxxxxxx> wrote:
>>
>>
>>  <xsl:stylesheet version="1.0"
>> xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
>>
>>
>>  <xsl:template match="NLIST">
>>  <xsl:for-each select="NITEM">
>>  <xsl:sort select="translate(PNR,'0123456789','ZZZZZZZZZZ')"/>
>>  <xsl:sort select="."/>
>>  <xsl:value-of select="."/>
>>
>>  </xsl:for-each>
>>  </xsl:template>
>>  </xsl:stylesheet>
>>
>>
>>  $ saxon sn.xml sn.xsl
>>  <?xml version="1.0" encoding="utf-8"?>
>>       AN4
>>
>>       A0B
>>
>>       CCR244SS-3-2
>>
>>       MS20995C20
>>
>>       291300A
>>
>>       7028590-901
>>
>>  ________________________________________________________________________
>>  The Numerical Algorithms Group Ltd is a company registered in England
>>  and Wales with company number 1249803. The registered office is:
>>  Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.
>>
>>  This e-mail has been scanned for all viruses by Star. The service is
>>  powered by MessageLabs.
>>  ________________________________________________________________________

Current Thread