Subject: Re: Order of xsl:template matching
From: David Carlisle <davidc@xxxxxxxxx>
Date: Wed, 11 May 2005 13:56:02 +0100
|
Given this XML chunk:
<TEXT>sldj aldj aldj a</TEXT>
<REPORT>12345</REPORT>
How can I apply templates and have the REPORT appear
before the TEXT in the results of the transformation?
If in the template for the parent you go
<xsl:apply-templates/>
Then nodes will be applied in document order.
There are various ways to change that depending what you want to happen
in general, eg
<xsl:apply-templates select="REPORT"/>
<xsl:apply-templates select="TEXT"/>
would process REPORT then TEXT and ignore everything else
<xsl:apply-templates select="REPORT"/>
<xsl:apply-templates select="*[not(self::REPORT)]"/>
would process REPORT elements first then any other elements
<xsl:apply-templates>
<xsl:sort select="name()"/>
</xsl:apply-templates>
would process elements in alphabetic order.
Any of these has the requested effect on your small example of
processing REPORT then TEXT.
David
________________________________________________________________________
This e-mail has been scanned for all viruses by Star. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________
|