Terence,
You can add a default copy template:
<xsl:template match="*" mode="copy">
<xsl:copy>
<xsl:apply-templates mode="copy" select="@*"/>
<xsl:apply-templates mode="copy"/>
</xsl:copy>
</xsl:template>
and match the exact elements you want the attribute added to in the copy
template that does also the attribute addition:
<xsl:template match="next2element | next3element" mode="copy">
<xsl:copy>
<xsl:attribute name="attributeX"><xsl:value-of
select="//*/@attributeX"/></xsl:attribute>
<xsl:apply-templates mode="copy" select="@*[name() !=
'attributeX']"/>
<xsl:apply-templates mode="copy"/>
</xsl:copy>
</xsl:template>
Best Regards,
George
-------------------------------------------------------------
George Cristian Bina mailto:george(_at_)oxygenxml(_dot_)com
<oXygen/> XML Editor - http://www.oxygenxml.com/
----- Original Message -----
From: "Terence Mac Goff" <tmacgoff(_at_)eircom(_dot_)net>
To: <xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com>
Sent: Monday, January 26, 2004 6:00 PM
Subject: Re: [xsl] copying attributes to all child nodes
Ken and George, thanks for both your great replies.
I think I understand the process a bit better, and hopefully my
terminology
will improve over time!
One last question - If I wanted to get the attribute applied to only
specific elements within the node, woudl I be better with a xsl:choose? or
a select?
<top.level.node attributeX="123456">
<next element attributeXYZ="654321">
<next2element attributeX="123456"> this is some
text</next2element>
<next2element attributeX="123456"> this is some more text
</next2element>
</nextelement>
</top.level.node>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list