Re: [xsl] Checking a parent's attribute

Subject: Re: [xsl] Checking a parent's attribute
From: Nicholas Orr <nick@xxxxxxxxxxx>
Date: Wed, 7 Feb 2007 22:36:16 +1100
On 07/02/2007, at 9:09 PM, Abel Braaksma wrote:

Depending on your needs, it may be better suited to use template matching instead of for-each. For instance, the above for-each can be written in separate templates like this (first one is your initial template):

<xsl:template match="/">
<xsl:apply-templates select="ExportEntries[../Restore/ @state='True']" />

<xsl:template match="ExportEntries">
   ... do something on ExportEntry level ....
   <xsl:apply-templates select="ExportEntry/Field" />

<xsl:template match="Field">
    .... do something on field level ....
   ... this is the same as the core of your for-each ...

Thanks Abel. In my case I only need to get to the end result, so I'm presuming I could just use :

<xsl:template match="ExportEntries[../Restore/@state='True']/ ExportEntry/Field" />

Would that be any different than the for each :

<xsl:for-each select="ExportEntries[../Restore/@state='True']/ ExportEntry/Field">

I haven't explored templates yet, so I'll have to read up them. Just to note, the ExportEntries node is buried deep in the tree, it's not above the root, so I'm not sure that makes a difference.


Current Thread