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.