[xsl] <xsl:sort>

Subject: [xsl] <xsl:sort>
From: aspsa <aspsa@xxxxxxxxxxxxx>
Date: Sat, 07 May 2005 03:37:44 -0400
Hi, folks.

I have an XML document which structure is the following:

<document>
  <header>
  <paragraph>
  <subheader>
  <paragraph>
  .
  .
  .
  <product>
    <partname>
    <category>
    .
    .
    .
  </product>
  <product>
    <partname>
    <category>
    .
    .
    .
  </product>
  .
  .
  .
</document>

In a template that matches on "document", I have the following:

<xsl:template match="document">
  <xsl:for-each select="child::node()">
    // etc...
  </xsl:for-each>
</xsl:template>

The XSLT stylesheet works fine, but now I need to sort the "product"
elements based upon the "category" element and in descending order. The
category content is numeric.

How would I execute this from within the "document" template?

Here's what I've tried.

<xsl:template match="document">
  <xsl:for-each select="child::node()">
    <xsl:if test="product">
      <xsl:apply-templates select=".">
        <xsl:sort select="category" data-type="number" order="descending" />
      </xsl:apply-templates>
    </xsl:if>
  </xsl:for-each>
</xsl:template>

Where am I going wrong? Thanks for your feedback.


Respectfully,

ASP

Current Thread