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