[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
[xsl] Re: Sorting by days of the week
Subject: [xsl] Re: Sorting by days of the week From: "Dimitre Novatchev" <dnovatchev@xxxxxxxxx> Date: Tue, 23 Dec 2003 10:49:32 +0100 |
<allan.mccluskey@xxxxxxxxxxxxxxxxx> wrote in message news:OF81B59B27.47321731-ONCA256E05.000EB718-CA256E05.000F8237@xxxxxxxxxxxxxxxxxxxx > G'day all, > > I need to sort my output by days of the week. i.e. I have a element called > 'dayCode' which can contain one of the following values: MON1, MON2, TUE1, > TUE2, WED1, WED2, THU1, THU2, FRI1, FRI2 etc etc > > I've tried using <xsl:sort select="dayCode" order="ascending"/> but as you > would expect, the output order is FRI, MON, THU, TUE, WED. > > Is there a way to do this kind or sort?? A general type of solution is the following: This transformation: <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:wkDays="my:week Days" exclude-result-prefixes="wkDays" > <xsl:output omit-xml-declaration="yes" indent="yes"/> <wkDays:wkDays> <wDay name="MON1" ordinal="1"/> <wDay name="MON2" ordinal="2"/> <wDay name="TUE1" ordinal="3"/> <wDay name="TUE2" ordinal="4"/> <wDay name="WED1" ordinal="5"/> <wDay name="WED2" ordinal="6"/> <wDay name="THU1" ordinal="7"/> <wDay name="THU2" ordinal="8"/> <wDay name="FRI1" ordinal="9"/> <wDay name="FRI2" ordinal="10"/> <wDay name="SAT1" ordinal="11"/> <wDay name="SAT2" ordinal="12"/> <wDay name="SUN1" ordinal="13"/> <wDay name="SUN2" ordinal="14"/> </wkDays:wkDays> <xsl:variable name="vwkDays" select="document('')/*/wkDays:*[1]"/> <xsl:template match="days"> <days> <xsl:for-each select="day"> <xsl:sort select="$vwkDays/wDay[@name=current()]/@ordinal" data-type="number"/> <xsl:copy-of select="."/> </xsl:for-each> </days> </xsl:template> </xsl:stylesheet> when applied on this source.xml: <days> <day>FRI2</day> <day>TUE1</day> <day>MON1</day> <day>THU2</day> <day>WED1</day> <day>SUN2</day> <day>SAT1</day> </days> produces the wanted result: <days> <day>MON1</day> <day>TUE1</day> <day>WED1</day> <day>THU2</day> <day>FRI2</day> <day>SAT1</day> <day>SUN2</day> </days> Dimitre Novatchev. FXSL developer http://fxsl.sourceforge.net/ -- the home of FXSL Resume: http://fxsl.sf.net/DNovatchev/Resume/Res.html XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Sorting by days of the we, Michael Kay | Thread | Re: [xsl] Sorting by days of the we, Vasu Chakkera |
RE: [xsl] Sorting by days of the we, Michael Kay | Date | [xsl] Re: Finding position of a nod, Dimitre Novatchev |
Month |