You have two template rules that are matching all elements, your processor
isn't reporting a template conflict, and the processor is choosing only to
follow the latter of the two.
Change your first match to "*" and your second match to "@*", or, more
succinctly, just use the following for your entire stylesheet:
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:template match="*">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:attribute name="test1">Name</xsl:attribute>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
I hope this helps.
....................... Ken
At 2004-04-29 17:56 +0530, Animesh Sharma wrote:
I want to write an XSL which will add the particular attribute in all node
in the DOM tree.
<xsl:template match="//*">
<xsl:copy>
<xsl:apply-templates select="@*"/>
<xsl:attribute name="test1">Name</xsl:attribute>
<xsl:apply-templates select="text()|*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="*|text()|@*">
<xsl:copy>
<xsl:apply-templates select="*|text()|@*"/>
</xsl:copy>
</xsl:template>
It adds the attribute only in root element. Is there way to do this stuff
recursively?
--
Public courses: Spring 2004 world tour of hands-on XSL instruction
Each week: Monday-Wednesday: XSLT/XPath; Thursday-Friday: XSL-FO
Hong Kong May 17-21; Bremen Germany May 24-28; Helsinki June 14-18
World-wide on-site corporate, govt. & user group XML/XSL training.
G. Ken Holman mailto:gkholman(_at_)CraneSoftwrights(_dot_)com
Crane Softwrights Ltd. http://www.CraneSoftwrights.com/s/
Box 266, Kars, Ontario CANADA K0A-2E0 +1(613)489-0999 (F:-0995)
Male Breast Cancer Awareness http://www.CraneSoftwrights.com/s/bc
Legal business disclaimers: http://www.CraneSoftwrights.com/legal