Re: [xsl] Simple Sort Problem

Subject: Re: [xsl] Simple Sort Problem
From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
Date: Tue, 26 Nov 2002 15:20:25 -0500
Evan,

At 03:00 PM 11/26/2002, you wrote:
I have sample xml and xsl file. In the style-sheet I am attempting to
sort the result of the 'info' element according to the number in the
'date' element.   In XMLspy this sort works correctly, but when I
deploy it on Unix with Apache Xalan it fails to return the document in
a sorted fashion; instead it just returns it in the order found in the
xml.

[snip]


<xsl:template match="Row">
<xsl:if test="info" >
<xsl:apply-templates select="info">
<xsl:sort select="info/date" order="descending"/>
</xsl:apply-templates>
</xsl:if>
</xsl:template>

When specifying the sort key on xsl:sort, it takes the nodes being selected as context for evaluating the select. So this should be:


<xsl:template match="Row">
  <xsl:apply-templates select="info">
    <xsl:sort select="date" order="descending"/>
  </xsl:apply-templates>
</xsl:template>

assuming <date> is a child of <info> (which your data shows it to be).

Notice also you don't need a test for whether there are any info elements; if there are none, none will be selected by your apply-templates.

I don't know why XMLSpy is working; Xalan is doing the right thing.

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 ======================================================================


XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list



Current Thread