Subject: RE: [xsl] Complex Sorting Help From: "Crist, Trevor" <tcrist@xxxxxxxxxxxx> Date: Sat, 25 Feb 2006 19:20:50 -0500 |
Guess it's time to get that .NET Saxon so I've got XSLT 2.0. :-) Thanks. > -----Original Message----- > From: Michael Kay [mailto:mike@xxxxxxxxxxxx] > Sent: Saturday, February 25, 2006 7:12 PM > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: RE: [xsl] Complex Sorting Help > > In XSLT 2.0 you can create a user-defined function and call it to compute > your sort key. > > In 1.0 the simplest solution is probably a two-pass one: in the first > pass, > compute the sort keys and add them as an extra attribute to the Property > elements; in the second pass, sort on that attribute. > > Michael Kay > http://www.saxonica.com/ > > > -----Original Message----- > > From: Crist, Trevor [mailto:tcrist@xxxxxxxxxxxx] > > Sent: 26 February 2006 00:02 > > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > > Subject: [xsl] Complex Sorting Help > > > > In the following example, I am trying to return the Property > > with the cheapest TOTAL rate first. > > What I WANT to do is something like, this, but of course it > > doesn't work... > > Any ideas how to get the desired results? > > > > XML: > > <Properties> > > <Property Name="My Hotel"> > > <Room Name="King Room"> > > <Day Date="04/15/2006" Quantity="2" > > Price="180.00"/> > > <Day Date="04/15/2006" Quantity="2" > > Price="180.00"/> > > <Day Date="04/15/2006" Quantity="2" > > Price="100.00"/> > > </Room> > > <Room Name="Suite"> > > <Day Date="04/15/2006" Quantity="2" > > Price="280.00"/> > > <Day Date="04/15/2006" Quantity="2" > > Price="280.00"/> > > <Day Date="04/15/2006" Quantity="2" > > Price="240.00"/> > > </Room> > > </Property> > > <Property Name="Other Hotel"> > > <Room Name="Queen Room"> > > <Day Date="04/15/2006" Quantity="2" > > Price="150.00"/> > > <Day Date="04/15/2006" Quantity="2" > > Price="165.00"/> > > <Day Date="04/15/2006" Quantity="2" > > Price="165.00"/> > > </Room> > > </Property> > > </Properties> > > > > > > > > XSL: > > <xsl:for-each select="Property"> > > <xsl:sort order="ascending" data-type="number" > > select="Room/sum(Day/@Price)"/> > > <br/><br/> > > <xsl:value-of select="@Name"/> <br/> > > > > <xsl:for-each select="Room"> > >   <xsl:value-of select="@Name"/> : > > <xsl:value-of select="sum(Day/@Price)"/> > > </xsl:for-each> > > </xsl:for-each> > > > > > > > > DESIRED RESULTS: > > My Hotel > > King Room: 460.00 > > Suite: 800.00 > > > > Your Hotel > > Queen Room: 480.00
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Complex Sorting Help, Michael Kay | Thread | [xsl] xml output method, jologa |
RE: [xsl] Complex Sorting Help, Michael Kay | Date | Re: [xsl] Passing arrays into XSL, Deepak |
Month |