xsl-list
[Top] [All Lists]

Re: Add attribute to all node

2004-04-29 06:06:20
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



<Prev in Thread] Current Thread [Next in Thread>