[XSL-LIST Mailing List Archive Home]
Re: [xsl] Process some elements, but not others...
Subject: Re: [xsl] Process some elements, but not others...|
From: Mike Brown <mike@xxxxxxxx>
Date: Thu, 13 Feb 2003 20:25:31 -0700 (MST)
Ted Stresen-Reuter wrote:
> I have an xml document whose elements contain html as in the following
> <p>This is <ref>the</ref> text node</p>
> What I'd like to be able to do is transform just the ref element and
> copy all the others.
This is more or less in the XSLT 1.0 spec, under Copying.
The "identity transform" described there is a template that has a relatively
low priority and recursively copies all nodes from the source tree to the
result. If you supplement that template with another that, by virtue of
matching with a more specific node test than the other, has a higher priority,
then you can override the identity transform for certain elements:
<!-- identity transform -->
<!-- replace a ref element with its children -->
Also, just FYI, your source tree has a structure like this:
|__text '\n '
| |__text 'This is '
| |__element 'ref'
| | |
| | |__text 'the'
| |__text ' text node'
...that is, "This is the text node" is not very accurate; the phrase is split
among 3 different text nodes, although if you use the templates above, you'll
end up with one :)
Mike J. Brown | http://skew.org/~mike/resume/
Denver, CO, USA | http://skew.org/xml/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list