Re: [xsl] excluding xml fragments by attributes using copy-of?

Subject: Re: [xsl] 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


Current Thread