[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Special Sort order
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. >> ________________________________________________________________________
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|