|
Subject: Re: [xsl] Sorting Two Dimensional Table From: David Carlisle <davidc@xxxxxxxxx> Date: Tue, 16 Oct 2007 18:24:25 +0100 |
> Is it possible to do a sort in a XPath so that it would feed the
> sequence in a sorted manner ?
XPath 1 does not have a sequence data type so you can not store a sorted
sequence, it has node sets, which are intrinsically unorderd.
If you need to store an ordered set of things in xpath 1 you need to
make copies of the nodes under under a parent node so that sibling order
records the ordering. You then to use the node set extension to access
the nodes.
XPath 2 has a (ordered) sequence type as its primitive datatype,
replacing node sets.
So where in xslt/xpath 2 you can go
<xsl:variable name="k1" as="xs:string+">
<xsl:perform-sort select="x/titles/key">
<xsl:sort select="."/>
</xsl:perform-sort>
</xsl:variable>
<xsl:for-each select="$k1,titles/value">
and so iterate over a sorted sequence of nodes, in XSLt 1 you'd go
<xsl:variable name="k1x">
<xsl:for-each select="x/titles/key">
<xsl:sort select="."/>
</xsl:for-each>
<xsl:copy-of select="x/titles/value"/>
</xsl:variable>
<xsl:variable name="k1" select="msxsl:node-set($k1x)/*"/>
<xsl:for-each select="$k1">
Which would work, but copying nodes is relatively expensive and if you
repeatedly copied at every iteration of the sorting it would get
exponentially so.
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 Two Dimensional T, Pierre-Luc Bertrand | Thread | RE: [xsl] Sorting Two Dimensional T, Scott Trenda |
| Re: [xsl] Maximum "child-depth" of , Dimitre Novatchev | Date | [xsl] Re: Wrapping two different el, Bruno Nahod |
| Month |