RE: [xsl] xsl:sort blocks of element with an attribute value

Subject: RE: [xsl] 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: [xsl] RE : RE: [xsl] 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: [xsl] RE : RE: [xsl] 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
>  

Current Thread