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

Subject: Re: [xsl] RE : [xsl] xsl:sort blocks of element with an attribute value
From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
Date: Tue, 18 Oct 2005 16:12:57 -0400
Stephane,

At 01:52 PM 10/18/2005, you wrote:
The output document is missing the ProductOption element! Why?

<?xml version="1.0" encoding="UTF-8"?><GetProductOptionsResponse>
    <Header/>
        <DetailedProduct>
        <ProductOptionGroup>

                <NetPrice>W</NetPrice>
                <NetPrice>M</NetPrice>
                <TravelerPrice>
                    <PriceSummary/>
                </TravelerPrice>

</ProductOptionGroup>

        </DetailedProduct>
</GetProductOptionsResponse>

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
version="1.0">
  <xsl:output method="xml"/>

  <xsl:template
match="/GetProductOptionsResponse/DetailedProduct/ProductOptionGroup/Product
Option">
    <xsl:apply-templates>
      <xsl:sort data-type="number" select="NetPrice/@NetAmount"
order="ascending"/>
    </xsl:apply-templates>
  </xsl:template>

  <xsl:template match="*">
    <xsl:copy>
      <xsl:apply-templates/>
    </xsl:copy>
  </xsl:template>
</xsl:stylesheet>

        I would like the original source document (with all attributes) with
the NetPrice elements sorted.

You have an xsl:copy in the template matching "*" but you forget you also need one when you match ProductOption.


So, try

  <xsl:template
match="/GetProductOptionsResponse/DetailedProduct/ProductOptionGroup/Product
Option">
    <xsl:copy>
      <xsl:apply-templates>
        <xsl:sort data-type="number" select="NetPrice/@NetAmount"
                  order="ascending"/>
      </xsl:apply-templates>
    </xsl:copy>
  </xsl:template>

Easy slip-up.

Cheers,
Wendell


====================================================================== Wendell Piez mailto:wapiez@xxxxxxxxxxxxxxxx Mulberry Technologies, Inc. http://www.mulberrytech.com 17 West Jefferson Street Direct Phone: 301/315-9635 Suite 207 Phone: 301/315-9631 Rockville, MD 20850 Fax: 301/315-8285 ---------------------------------------------------------------------- Mulberry Technologies: A Consultancy Specializing in SGML and XML ======================================================================

Current Thread