Subject: RE: apply-templates with exceptions
From: "Michael Kay" <mhk@xxxxxxxxx>
Date: Wed, 12 Nov 2003 00:12:52 -0000
|
>
> Hey, just found out how to get a "negative" node list (thank-you,
> archives!):
>
> <xsl:apply-templates select="*[not(name() = 'title')]" />
>
> I'll use this unless anyone has a cleaner or more efficient method?
>
Well, it's definitely better to write select="*[not(self::title)] if you
know the name at compile time (for a start, it avoids namespace
complications).
In XPath 2.0 you can write select="* except title".
Another approach is to apply-templates on all the elements (perhaps in a
special mode) and then define a null template
<xsl:template match="title" mode="xxx"/>
This last approach is definitely the neatest once you have a (growing)
list of elements to be excluded.
Michael Kay
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|