Re: [xsl] check for ancestors attribute

Subject: Re: [xsl] check for ancestors attribute
From: David Carlisle <davidc@xxxxxxxxx>
Date: Tue, 8 Feb 2005 11:19:28 GMT
> How do I need to extend this template to match not only <foo
> name="bar"> but further restrict my template to those <foo>s that have
> an ancestor with attribute type="general". 
> 
> <xsl:template match="foo[@name='bar']">

the direct translation of what you wrote would be

<xsl:template match="foo[@name='bar'][ancestor::*[@type='general']]">

although I'd probably write that as


<xsl:template match="*[@type='general']//foo[@name='bar']">


> It seem to be not OK to write:
> 
> <xsl:template match="foo[@name='bar' and ancestor::@type='general']">

@ is attribute:: and you can't use two axese in one step, that should
have been


<xsl:template match="foo[@name='bar' and ancestor::*/@type='general']">

which is equivalent to the first form above.

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