|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: Sorting and re-ordering down a hierarchy
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
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








