Re: [xsl] Copy element with attributes

Subject: Re: [xsl] Copy element with attributes
From: Ragulf Pickaxe <ragulf.pickaxe@xxxxxxxxx>
Date: Tue, 29 Nov 2005 14:25:13 +0100
Hi Diogo,

> The xslt I use:
>
> <xsl:template match="body">
> <xsl:copy>
> Prepend text
> <xsl:apply-templates/>
> Append text
> </xsl:copy>
> </xsl:template>
>
> removes body tag attributes. How can
> I copy the body tag attributes at the
> same time, so I can use something like:
>
> <xsl:template match="body/@text">
> <xsl:attribute name="text">#000000</xsl:attribute>
> </xsl:template>
>
> to change attributes.

I am not sure quite what you want.
If you want to copy the attributes as is, you should do something like:
<xsl:copy>
<xsl:copy-of select="@*"/>
Prepend text
<xsl:apply-templates/>
...

If you want to do something with the attributes, you should perhaps do
something like:
<xsl:copy>
<xsl:apply-templates select="@*"/>
...

Or you can do something like:
<xsl:copy>
<xsl:for-each select="@*">
<xsl:attribute name="name()"><!-- Do something here --></xsl:attribute>
</xsl:for-each>
Prepend text
...

I do not know if this is what you want.

Regards,
Ragulf Pickaxe :-)

Current Thread