Subject: Re: 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.
>> ________________________________________________________________________
|