RE: [xsl] Why template match differs?

Subject: RE: [xsl] Why template match differs?
From: "SHEIKH Sajjad" <Sajjad.SHEIKH@xxxxxxxxxxx>
Date: Thu, 11 Dec 2003 18:39:35 +0100
Thanks David.

Following two templates generates the same results:


<xsl:template match="link//llnode" mode="yyy">
<xsl:for-each select="*">

<xsl:template match="link" mode="yyy">
<xsl:for-each select="*//llnode">

-----Original Message-----
From: David Carlisle [mailto:davidc@xxxxxxxxx] 
Sent: 11 December 2003 18:17
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re: [xsl] Why template match differs?

> What is the different between following two statements?

<xsl:template match="link//llnode" mode="yyy">

that matches anly llnode that is a descendent of a link node. so this
<xsl:for-each select="*"> selects all children of those llink nodes.

Your other template is almost completely different.

<xsl:template match="link" mode="yyy">

that matches any link node

<xsl:for-each select="//llnode">

this selects all llnode from anywhere in the document irrespective of
which link node was matched.  the " ..some action.. " is now executed on
the link node not on its children as in the first template.

You could yuse .//llnode in the second template to find all llnodes
below the current link, but in either case if you know a more specific
path than // it would be good to use it. // is very expensive it causes
a search the full depth of the tree looking for the specified nodes.



This e-mail has been scanned for all viruses by Star Internet. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:

 XSL-List info and archive:

This message has been scanned for all viruses by BTnet VirusScreen. The
service is delivered in partnership with MessageLabs.

This service does not scan any password protected or encrypted

If you are interested in finding out more about the service, please
visit our website at

 XSL-List info and archive:

Current Thread