[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
Re: [xsl] Rename Some Node ans attribute
Subject: Re: [xsl] Rename Some Node ans attribute
From: Abel Braaksma <abel.online@xxxxxxxxx>
Date: Mon, 16 Oct 2006 16:31:08 +0200
|
Davide Antoni wrote:
Hi to all
<xsl:template match="*">
<xsl:copy>
<xsl:copy-of select="@*[name()!='idCup']"/>
<xsl:if test="@idCup">
<xsl:attribute name="idCUP">
<xsl:value-of select="@idCup">
</xsl:value-of>
</xsl:attribute>
</xsl:if>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
Why all the complex xsl:copy and xsl:copy-of intermingled with xsl:if?
Make it yourself easier by applying the (in)famous copy-idiom. Try this
as a complete replacement of your code and the magic of XSLT will do the
work:
<xsl:template match="node( ) | @*">
<xsl:copy>
<xsl:apply-templates select="@* | node( )"/>
</xsl:copy>
</xsl:template>
<xsl:template match="@idCup">
<xsl:attribute name="idCUP">
<xsl:value-of select="."/>
</xsl:attribute>
</xsl:template>
Hope this helps,
Cheers
-- Abel Braaksma
http://www.nuntia.com
|