xsl:sort

Subject: xsl:sort
From: Dave Pawson <daveP@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Sun, 06 Aug 2000 11:34:36 +0100
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


Current Thread
  • xsl:sort
    • Dave Pawson - Sun, 06 Aug 2000 11:34:36 +0100 <=