This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
xsl:sort
- To: xsl-list at mulberrytech dot com
- Subject: xsl:sort
- From: Dave Pawson <daveP at dpawson dot freeserve dot co dot uk>
- Date: Sun, 06 Aug 2000 11:34:36 +0100
- Reply-To: xsl-list at mulberrytech dot com
I thought I understood sorting :-|
With the following xml
<?xml version="1.0" encoding="utf-8"?>
<faqindex>
<functions/>
<functions>
<pair>
<word>document()</word>
<file>N169.html</file>
</pair>
</functions>
<functions>
<pair>
<word>order</word>
<file>N795.html</file>
</pair>
</functions>
<functions>
<pair>
<word>position()</word>
<file>N961.html</file>
</pair>
</functions>
I want to sort on select = pair/word.
Does a sort use the key *only* for sorting,
i.e. can I keep the function and its children together
durin the sort?
<xsl:template match="faqindex">
<H2>Index for XSLT FAQ Website</H2>
<!-- Sort the functions -->
<xsl:variable name="fns">
<xsl:for-each select="functions[.!='']">
<xsl:sort data-type="text" select="pair/word"/>
</xsl:for-each>
</xsl:variable>
<!-- now convert that to a node-set and step through it -->
<xsl:for-each select="xt:node-set($fns)">*
<xsl:value-of select="child::*/text()"/> <br />
</xsl:for-each>
</xsl:template>
this is giving me zilch output, and I can't see the logic.
I'm hoping that the fns variable will hold the node-list
of all function elements, sorted by 'word' child, and
include the file child... or at least thats the way I thought
it worked.
any help appreciated.
TIA DaveP
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list