|
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 |