This is the mail archive of the
mailing list .
Re: Only transform certain tags
- To: claus at arsdigita dot com, docbook-apps at lists dot oasis-open dot org
- Subject: Re: DOCBOOK-APPS: Only transform certain tags
- From: Bob Stayton <bobs at sco dot COM>
- Date: Fri, 06 Apr 2001 01:47:00 -0700 (PDT)
> From: Claus Rasmussen <firstname.lastname@example.org>
> I'm using DocBook 4.1.2 XML and Norm's associated style sheets.
> I've extended the DTD with some custom sections and now I'm trying to hit
> valid docbook format from there. This means that I want only my custom
> <mysection> tag or whatever to be transformed (via a custom XSL style sheet
> that turn my custom-tags into docbook tags). So basically I want to have this:
> ..transformed into an article with, say, two sect1's. Basically I'm asking how
> I take non-matched tags and copy them and their content to the result tree.
> I've tried using <xsl:copy-of ... > but I can't have it catch only
> none-matched tags. Also, if I use regular <xsl:apply-templates/> I obviously
> only get the content of the foreign tags.
> I'm sure this is easy, but could some one please give me a hint?
If I understand what you are trying to do,
I think you want to use <xsl:copy>, which is easier
to control since it doesn't copy all of its
children like <xsl:copy-of> does.
The stylesheet below will pass through everything,
except <mysection> elements are changed to <sect1>
elements. Is that what you are after?
The first template replaces the
built-in default template rule with one that
copies elements rather than just copying text
nodes. The second template has a more
specific match on "mysection", so it takes
precedence over the default and changes that element
to <sect1>. The use of <xsl:copy-of select="@*"/>
in each template copies all the attributes of each
You can add templates for any other elements
that need to be changed. All unmatched elements
are matched by the first template.
Bob Stayton 400 Encinal Street
Publications Architect Santa Cruz, CA 95060
Technical Publications voice: (831) 427-7796
The Santa Cruz Operation, Inc. fax: (831) 429-1887
To unsubscribe from this elist send a message with the single word
"unsubscribe" in the body to: email@example.com