Subject: RE: Renaming an element when using copy-of
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Tue, 13 Jun 2006 21:03:48 +0100
|
You can't do it using xsl:copy-of. Instead you walk the tree using
xsl:apply-templates, changing the name of each node as you go. If there are
nodes you don't want to change, you can handle them with an identity
template:
<xsl:template match="*">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
and then you just write additional rules for the nodes you do want to
change.
Michael Kay
http://www.saxonica.com/
> -----Original Message-----
> From: Chad Chelius [mailto:cchelius@xxxxxxxxxxxxxxx]
> Sent: 13 June 2006 20:02
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: Renaming an element when using copy-of
>
> I am trying to copy the contents of an element called
> <source> using a template but I want to change it's name when
> doing so. This <source> element contains several children
> that I want to carry over but I also want to rename them as
> well. I'm currently using:
>
> <xsl:copy-of select="source"/>
>
> This works but I want to change the name of source. How do I do this?
|