Subject: RE: [xsl] Sorting Using A Predefined Order From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Thu, 21 Jun 2007 09:05:09 +0100 |
In 2.0, you just need to write a user-defined function that translates your keys into numbers, for example January->1, February->2, and so on. The use xsl:sort select="my:function(head)". In 1.0 it's a bit more difficult because you can't call user-defined functions within the select expression of xsl:sort. But you can usually achieve the same thing by means of table-defined mapping. Given a document months.xml such as <doc> <month name="January" value="1"/> <month name="February" value="2"/> you can write <xsl:sort select="document('months.xml')/doc/month[@name=current()/head]/@value" data-type="number"/> Michael Kay http://www.saxonica.com/ > -----Original Message----- > From: Jeff Sese [mailto:jsese@xxxxxxxxxxxx] > Sent: 21 June 2007 05:16 > To: Xsl-List > Subject: [xsl] Sorting Using A Predefined Order > > Hi, > > Is it possible to sort some data according to a predefined ordering? > > > I have a file like: > > <root> > <div> > <head>Some text 1</head> > </div> > <div> > <head>Some text 2</head> > </div> > <div> > <head>Some text 3</head> > </div> > <div> > <head>Some text <4/head> > </div> > <div> > <head>Some text 5</head> > </div> > </root> > > and i want it sorted using this ordering: > > Some text 2 > Some text 3 > Some text 5 > Some text 1 > Some text 4 > > Is the only solution to this is creating my own collation? > > Thanks! > -- Jeff
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Sorting Using A Predefined Or, Jeff Sese | Thread | Re: [xsl] Sorting Using A Predefine, David Carlisle |
RE: [xsl] Sorting in A for-each-gro, Michael Kay | Date | Re: [xsl] Managing two different XS, Abel Braaksma (onlin |
Month |