[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

RE: Sorting and re-ordering down a hierarchy

Subject: RE: Sorting and re-ordering down a hierarchy
From: Américo Albuquerque <melinor@xxxxxxx>
Date: Tue, 22 Jul 2003 14:20:53 +0100
xsl apply templates select node
Hi


> -----Original Message-----
> From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx 
> [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of 
> Ragulf Pickaxe
> Sent: Tuesday, July 22, 2003 9:21 AM
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: Re:  Sorting and re-ordering down a hierarchy
> 
> 
> Hi,
> 
> I did not see any response on this (except for one who said 
> he used Perl 
> instead), so I tried myself.
> The templates below, I thought would do what was wanted, but 
> I only get it 
> to sort on the 1st level, not on the second level. I do not know why.
> 
> Does anybody else have a solution, and can anyone tell me why 
> my solution 
> does not work?

In your stylesheet you have:
<xsl:apply-templates select="node">
  <xsl:sort select="node/rank" ... />
</xsl:apply-templates>

Here you are saying:
Apply templates to node "node" and sort it buy child::node/child::rank

Basicaly you are using node and sorting by node/node/rank (path from the
same parent)

What you want is
<xsl:apply-templates select="node">
  <xsl:sort select="rank" ... />
</xsl:apply-templates>

That way you select node and sort it by node/rank (path from the same
parent)

Hope this helps you.

> 
> Regards,
> Ragulf Pickaxe :)
> 
> 
> <xsl:template match="/">
> 	<output>
> 	<xsl:apply-templates select="input"/>
> 	</output>
> </xsl:template>
> 
> <xsl:template match="input">
> 	<xsl:apply-templates select="node">
> 		<xsl:sort select="node/rank" data-type="number" 
> order="ascending"/>
> 	</xsl:apply-templates>
> </xsl:template>
> 
> <xsl:template match="node">
> 	<node>
> 	<xsl:copy-of select="rank"/>
> 	<xsl:apply-templates select="node">
> 	<xsl:sort select="node/rank" data-type="number" 
> order="ascending"/>
> 	</xsl:apply-templates>
> 	</node>
> </xsl:template>
> 
> 
> ><input>
> ><node>
> >     <rank>2</rank>
> >     <node>
> >         <rank>88</rank>
> >     </node>
> >     <node>
> >         <rank>7</rank>
> >     </node>
> >     <node>
> >         <rank>66</rank>
> >     </node>
> ></node>
> ><node>
> >     <rank>1</rank>
> >     <node>
> >         <rank>3</rank>
> >     </node>
> >     <node>
> >         <rank>2</rank>
> >     </node>
> >     <node>
> >         <rank>1</rank>
> >     </node>
> ></node>
> ></input>
> 
> The output I get on this is:
> <output>
>   <node>
>     <rank>1</rank>
>     <node>
>       <rank>3</rank>
>     </node>
>     <node>
>       <rank>2</rank>
>     </node>
>     <node>
>       <rank>1</rank>
>     </node>
>     </node>
>     <node>
>       <rank>2</rank>
>     <node>
>       <rank>88</rank>
>     </node>
>     <node>
>       <rank>7</rank>
>     </node>
>     <node>
>       <rank>66</rank>
>     </node>
>   </node>
> </output>
> 
> _________________________________________________________________
> MSN 8 with e-mail virus protection service: 2 months FREE* 
> http://join.msn.com/?page=features/virus
> 
> 
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> 
> 
> 



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


Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.