[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

RE: [xsl] Ordering nodes by number of children


Subject: RE: [xsl] Ordering nodes by number of children
From: "Andreas L. Delmelle" <a_l.delmelle@xxxxxxxxxx>
Date: Sun, 22 Feb 2004 15:20:24 +0100

> -----Original Message-----
> From: Smilen Dimitrov 
> 
> I'm a newbie with XSL, and after long searching, and mainly 
> thanks to the information in the list, I finally managed to solve 
> the problem. Consider the following structure:
> 

Hi,

This bit:
>    
>    <xsl:for-each select="./*">
>    
>     <xsl:sort select="count(child::*)" data-type="number" 
> order="descending"/>
>     
>     <xsl:call-template name="ArrangeDirectory">
>      <xsl:with-param name="CurrentNode" select="."/>
>     </xsl:call-template>
>     
>    </xsl:for-each>
>    

would, with the given input, actually have exactly the same output as:

<xsl:apply-templates>
  <xsl:sort select="count(*)" data-type="number"
    order="descending" />
</xsl:apply-templates>


So the complete solution revised:

<?xml version="1.0" encoding="UTF-8" ?>

<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" indent="yes" />

<xsl:template match="/">
  <xsl:apply-templates />
</xsl:template>

<xsl:template match="node">
  <xsl:copy>
    <xsl:copy-of select="@*" />
    <xsl:apply-templates>
      <xsl:sort select="count(*)" data-type="number"
                order="descending" />
    </xsl:apply-templates>
  </xsl:copy>
</xsl:template>

</xsl:stylesheet>


Cheers,

Andreas

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



Current Thread
Keywords
xsl