Re: [xsl] Order of xsl:template matching

Subject: Re: [xsl] 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
________________________________________________________________________

Current Thread