Subject: Re: excluding xml fragments by attributes using copy-of?
From: Mike Brown <mike@xxxxxxxx>
Date: Fri, 13 Dec 2002 14:05:31 -0700 (MST)
|
Carl Yu wrote:
> I'm trying to translate one XML document to another using XSL but I can't come
> up with the proper XSL.
>
> lets say the incoming document has this form
>
> <A>
> <B>
> <C value="foo">
> <D />
> </C>
> </B>
> <B>
> <C value="bar">
> <D />
> </C>
> </B>
> <E />
> <F />
> ...
> </A>
>
> The transformed file would ideally be
>
> <A>
> <B>
> <C value="foo">
> <DPRIME />
> </C>
> </B>
> <B>
> <C value="bar">
> <D />
> </C>
> </B>
> <E />
> <F />
> ...
> </A>
>
> Notice how D was changed to DPRIME. I want to retain all of the nodes and
> attributes of the rest of the original XML file, but change the contents of
>
> select="/A/B/C[value='foo']" from D to DPRIME.
Use the identity transformation (a recursive copy-through), as described in
the XSLT spec under "Copying".
Add this template to it:
<xsl:template match="C[value='foo']/D">
<Dprime/>
</xsl:template>
Mike
--
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
|