RE: [xsl] How to apply templates to all child elements except a few

Subject: RE: [xsl] How to apply templates to all child elements except a few
From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx>
Date: Tue, 17 Oct 2006 14:59:18 -0400
At 2006-10-17 14:45 -0400, cknell@xxxxxxxxxx wrote:
<xsl:template match="el1">
  <xsl:apply-templates match="*[not(local-name() = 'CHILD4'] />
</xsl:template>
--
Charles Knell
cknell@xxxxxxxxxx - email
-----Original Message-----
From:     rfd ewrew <xmlquestions101@xxxxxxxxxxx>
Sent:     Tue, 17 Oct 2006 13:38:15 -0500
To:       xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject:  [xsl] How to apply templates to all child elements except a few

Hi:

I was wondering if there was any way in xslt to APPLY TEMPLATES a few
elements and exclude a few

Suppose i have an xml with a root element as el1
<el1>
<CHILD1></CHILD1>
<CHILD2></CHILD2>
<CHILD3></CHILD3>
<CHILD4></CHILD4>

</el1>
I want to write something like apply templates to all elements except
CHILD4. How do I do this?

I would suggest, Charles, that using the self:: axis is "safer" because while it accommodates the elements as given it also accommodates the situation where readers of the archive happen to be working with elements in a namespace this usage pattern would be more appropriate:

<xsl:template match="el1">
  <xsl:apply-templates match="*[not(self::CHILD4)]"/>
</xsl:template>

I hope this helps.

. . . . . . . . . . . . Ken


-- UBL/XSLT/XSL-FO training: Allerxd/Verx Denmark 2006-11-13,17,20/24 UBL International 2006 2006-11-13/17 http://www.ublconference.com World-wide corporate, govt. & user group UBL, XSL, & XML training. G. Ken Holman mailto:gkholman@xxxxxxxxxxxxxxxxxxxx Crane Softwrights Ltd. http://www.CraneSoftwrights.com/s/ Box 266, Kars, Ontario CANADA K0A-2E0 +1(613)489-0999 (F:-0995) Male Cancer Awareness Aug'05 http://www.CraneSoftwrights.com/s/bc Legal business disclaimers: http://www.CraneSoftwrights.com/legal

Current Thread