[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Special Sort order
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
|