Subject: Re: [xsl] Natural Sort From: David Carlisle <davidc@xxxxxxxxx> Date: Wed, 25 Jan 2006 11:03:23 GMT |
me> You could in XSLT2, in XSLT1 you could do: To be more explict starting from here <x> <server dn="members10.mysite.com" id="Server491" os="FreeBSD 4.11"/> <server dn="media2.mysite.com" id="Server488" os="Fedora Core 1"/> <server dn="media10.mysite.com" id="Server433" os="Fedora Core 1"/> <server dn="members1.mysite.com" id="server322" os="Debian Linux"/> <server dn="members2.mysite.com" id="Server435" os="Fedora Core 2"/> <server dn="media1.mysite.com" id="server392" os="FreeBSD 5.1"/> </x> The following stylesheet shows two ways of getting to <server dn="media1.mysite.com" id="server392" os="FreeBSD 5.1"/> <server dn="media2.mysite.com" id="Server488" os="Fedora Core 1"/> <server dn="media10.mysite.com" id="Server433" os="Fedora Core 1"/> <server dn="members1.mysite.com" id="server322" os="Debian Linux"/> <server dn="members2.mysite.com" id="Server435" os="Fedora Core 2"/> <server dn="members10.mysite.com" id="Server491" os="FreeBSD 4.11"/> The first way would also work in XSLT1, the second way uses xpath2 regexp to sort media1 as media01. David <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"> <xsl:output indent="yes" omit-xml-declaration="yes"/> <xsl:template match="x"> <x> <a> <xsl:for-each select="server"> <xsl:sort select="translate(substring-before(@dn, '.'),'0123456789','')" data-type="text" order="ascending"/> <xsl:sort select="translate(substring-before(@dn, '.'),'abcdefghijklmnopqrstuvwxyz','')" data-type="number" order="ascending"/> <xsl:copy-of select="."/> </xsl:for-each> </a> <b> <xsl:for-each select="server"> <xsl:sort select="replace(@dn,'([^0-9])([0-9])([^0-9])','$10$2$3')"/> <xsl:copy-of select="."/> </xsl:for-each> </b> </x> </xsl:template> </xsl:stylesheet> ________________________________________________________________________ This e-mail has been scanned for all viruses by Star. The service is powered by MessageLabs. For more information on a proactive anti-virus service working around the clock, around the globe, visit: http://www.star.net.uk ________________________________________________________________________
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Natural Sort, David Carlisle | Thread | RE: [xsl] Natural Sort, Michael Kay |
Re: [xsl] Natural Sort, David Carlisle | Date | [xsl] [ANN] RenderX released XEP 4., Michael Sulyaev |
Month |