[xsl] add an attribute to an element, then use it in another template

Subject: [xsl] add an attribute to an element, then use it in another template
From: Pablo Sebastian Rodriguez <psrodriguez@xxxxxxxxxxxxxxxx>
Date: Tue, 04 Mar 2008 16:26:14 -0200
hi,
i'm new using xsl, so please be patient... ;-)

the input is something like this:

<music>

   <project name="W.A.S.T.E">
       <release name="We all seek total entropy" year="2003"/>
       <release name="Violent delights" year="2006"/>
   </project>

   <project name="Winterkalte">
       <release name="Structures of Destruction" year="1997"/>
       <release name="Drum 'n' noise" year="1999"/>
   </project>

</music>


the xsl:


   <xsl:template match="music">
       <xsl:call-template name="attr">
           <xsl:with-param name="stuff" select="project"/>
       </xsl:call-template>
   </xsl:template>

   <xsl:template name="attr">
       <xsl:param name="stuff"/>
       <xsl:for-each select="$stuff/@*">

       attrName: <xsl:value-of select="name()"/>
       attrValue: <xsl:value-of select="."/>

       </xsl:for-each>
   </xsl:template>

the output:

attrName: name
attrValue: W.A.S.T.E

attrName: name
attrValue: Winterkalte


what i'm trying to do is add an attribute so the output will be:


attrName: newThing
attrValue: whoKnowsWhat

attrName: name
attrValue: W.A.S.T.E

attrName: name
attrValue: Winterkalte

attrName: adadad
attrValue qwertyu

i tried using <xsl:attribute> but i can't make it work... any ideas ?

thanks

Current Thread