Subject: RE: xsl:sort blocks of element with an attribute value
From: "Stephane Dion" <stephane@xxxxxxxxxxx>
Date: Mon, 17 Oct 2005 12:47:26 -0400
|
It's not working.
In my case, I'm not sure if I should use xsl:for-each instead of
apply-template. I read the documentation but it's not clear for me. What do
you think?
Thanks
Stephan
-----Message d'origine-----
De : Michael Kay [mailto:mike@xxxxxxxxxxxx]
Envoyi : October 17, 2005 10:19
@ : xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Objet : RE: RE : RE: xsl:sort blocks of element with an
attribute value
I think you want
<xsl:sort select="NetPrice/@netAmount" data-type="number"/>
- though this doesn't handle multiple currencies!
Michael Kay
http://www.saxonica.com/
> -----Original Message-----
> From: Stephane Dion [mailto:stephane@xxxxxxxxxxx]
> Sent: 17 October 2005 15:05
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: RE : RE: xsl:sort blocks of element with
> an attribute value
>
> Hi
>
> As requested, this is my stylesheet.
>
> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> version="2.0">
> <xsl:output method="xml"/>
> <xsl:template
> match="/GetProductOptionsResponse/DetailedProduct/ProductOptio
> nGroup/Product
> Option">
> <xsl:apply-templates>
> <xsl:sort data-type="number" select="@NetPrice"
> order="ascending"/>
> </xsl:apply-templates>
> </xsl:template>
>
> <xsl:template match="*">
> <xsl:copy>
> <xsl:apply-templates/>
> </xsl:copy>
> </xsl:template>
> </xsl:stylesheet>
>
> Thanks for your help
> Stephan
>
> Hi
>
> Could someone help me with this.
>
> I would like to sort each NetPrice block by the
> attribute value
> netAmount (ascending) of each block.
>
> Here is my XML:
>
> <GetProductOptionsResponse xmlns="http://www.accovia/TRIP2004A/01";>
> <Header language="en" version="5.1.0"/>
> <DetailedProduct availabilityStatus="available">
> <ProductOptionGroup description="OPTION GROUP 1">
> <ProductOption description="option A">
> <NetPrice currency="EUR" netAmount="2.27"
> priceReferenceID="HTLAVO13XAAX" quantity="1"/>
> <NetPrice currency="EUR" netAmount="-45.09"
> priceReferenceID="HTLAVO13XAAX" quantity="1"/>
> <TravelerPrice age="10" travelerId="003">
> <PriceSummary baseAmount="0.00"/>
> </TravelerPrice>
> </ProductOption>
> <ProductOption description="option B">
> <NetPrice currency="EUR" netAmount="2.27"
> priceReferenceID="HTLAVO13XAAX" quantity="1"/>
> <NetPrice currency="EUR" netAmount="-45.09"
> priceReferenceID="HTLAVO13XAAX" quantity="1"/>
> <TravelerPrice age="10" travelerId="003">
> <PriceSummary baseAmount="0.00"/>
> </TravelerPrice>
> </ProductOption>
> </ProductOptionGroup>
> <ProductOptionGroup description="OPTION GROUP 2">
> <ProductOption description="option Z">
> <NetPrice currency="EUR" netAmount="5.55"
> priceReferenceID="BHTLAVO13XAAX" quantity="1"/>
> <NetPrice currency="EUR" netAmount="-145.09"
> priceReferenceID="BHTLAVO13XAAX" quantity="1"/>
> <TravelerPrice age="99" travelerId="001">
> <PriceSummary baseAmount="1.00"/>
> </TravelerPrice>
> </ProductOption>
> </ProductOptionGroup>
> </DetailedProduct>
> </GetProductOptionsResponse>
>
> I have tried many many ways without success.
>
> Thanks in advance for your help
> Stephan
>
|