xsl-list
[Top] [All Lists]

Re: [xsl] matching question

2008-08-06 04:32:32
  If my input is like

  <a>
     <b/>
  </a>

  the above template matches only <a> 

No it also matches b.

The template will only be activated with b as the current node if
templates are applied to b.

initially the current node is the root of the document (/)
your template that matches child::node() does not match / as that is not
the child of anything so the default template is used, which does 
<xsl:apply-templates select="node()"/>

this selects the children of a which is the a element in your example.

your template matches a so will fire.

What happens next depends on what you puit in the ...


<xsl:template match="node()">
...
</xsl:template>

If you don't apply-templates then that is the end of processing. if you
do apply templates eg have again
<xsl:apply-templates select="node()"/>
or equivalently just
<xsl:apply-templates/>
then templates will be applied to teh children of a which consists of
two white space text nodes and a b element. Your template matching
node() would match all three of those nodes so would be fired a further
three times.


David

________________________________________________________________________
The Numerical Algorithms Group Ltd is a company registered in England
and Wales with company number 1249803. The registered office is:
Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.

This e-mail has been scanned for all viruses by Star. The service is
powered by MessageLabs. 
________________________________________________________________________

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

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