[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
RE: [xsl] Sorting Using A Predefined Order
Subject: RE: [xsl] Sorting Using A Predefined Order From: "Angela Williams" <Angela.Williams@xxxxxxxxxxxxxxxxxx> Date: Fri, 22 Jun 2007 09:41:01 -0500 |
This solution was offered up when I had the same question a few weeks ago. <xsl:function name="my:performSort" as="element()+"> <xsl:param name="list" as="element()+" /> <xsl:param name="sortKey" as="element()+" /> <xsl:variable name="sortedList" as="element()+"> <xsl:for-each select="$list"> <xsl:sort select="*[name() = $sortKey[1]]" /> <xsl:copy-of select="." /> </xsl:for-each> </xsl:variable> <xsl:sequence select="if ($sortKey[2]) then my:performSort($sortedList, subsequence($sortKey, 2)) else $sortedList" /> </xsl:function> Thanks! Angela -----Original Message----- From: Jeff Sese [mailto:jsese@xxxxxxxxxxxx] Sent: Thursday, June 21, 2007 9:28 PM To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: Re: [xsl] Sorting Using A Predefined Order Thanks for all the answers, I think I'll gonna go with Mr. Kay's solution cause the defined ordering lists a large number of keys. -- Jeff David Carlisle wrote: > Andrew> which can also be written as: > > Andrew> <xsl:apply-templates select="(div[2], div[3], div[5], > Andrew> div[1], div[4])"/> > > > oh yes if we're using xpath2 there's other ways as well eg > > <xsl:apply-templates select="for $p in (2,3,5,1,4) return div[$p]"/> > > > this is equivalent to Andrew's although actually neither's quite > equivalent to my original suggestion of 5 apply-templates calls, as in > that case position() and last() would be equal to 1 each time whereas > in either of the versions here, last() is 5 and position() would be > 1..5, which is often preferable. > > David > > ______________________________________________________________________ > __ 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. > ______________________________________________________________________ > __
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Sorting Using A Predefine, Jeff Sese | Thread | [xsl] Vote for libexslt support for, M. David Peterson |
RE: [xsl] question about count(node, Michael Kay | Date | Re: [xsl] From WordprocessingML inl, Yves Forkl |
Month |