RE: [xsl] Sort by calculated value

Subject: RE: [xsl] Sort by calculated value
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Tue, 29 Aug 2006 14:55:04 +0100
Your second sort key count(//Outward[Id=Id]/SegmentList/Segment) has the
same value for all the nodes in the node-set being sorted: there are two
things obviously wrong with it, the initial "//" which selects from the
root, and the predicate [Id=Id] which will always be true. Perhaps you
intended  

count(//Outward[Id=current()/Id]/SegmentList/Segment)

but I can't tell without seeing the source.

Michael Kay
http://www.saxonica.com/

> -----Original Message-----
> From: Giancarlo Rossi [mailto:giancarlo_rossi@xxxxxxxxxx] 
> Sent: 29 August 2006 14:20
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] Sort by calculated value 
> 
> 
> I'm trying to sort using a calculated value Process MSXML Xsl 1.0
> 
> 
> For. E.g
> 
> <xsl:for-each
> select="/CommandList/CheckRouting/RouterList/Router/GroupList/
> Group/OutwardL
> ist/Outward" > <xsl:sort select="Price/Amount" data-type="number"
> order="ascending" /> <xsl:sort
> select="count(//Outward[Id=Id]/SegmentList/Segment)" 
> data-type="number"
> order="ascending" />
> 
> 'my code
> </xsl:for-each>
> 
> But the second sort is not respected.
> 
> Infact the "segment" could be 1 or 2..
> 
> Id is the Id of the outward
> 
> http://www.lastminutesud.it/test/last_mad_lgw.xml
> 
> I hope you could help me.

Current Thread