xsl-list
[Top] [All Lists]

Re: Simple Sort Problem

2002-11-26 13:20:25
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(_at_)mulberrytech(_dot_)com
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



<Prev in Thread] Current Thread [Next in Thread>