Re: [xsl] concatenate multiple attribute values and assign it to another attribute

Subject: Re: [xsl] concatenate multiple attribute values and assign it to another attribute
From: Abel Braaksma <abel.online@xxxxxxxxx>
Date: Thu, 29 Mar 2007 22:47:02 +0200
Shaikh, Parvez wrote:
<test node att1="1" att2="a" />
<test node att1="2" att2="b" />
<test node att1="3" att2="c" />
<test node att1="4" att2="d" />
I want to output this as


<testnode att1="1,2,3,4" att2="a,b,c,d" />
How do you do this.

Well, that won't change my original answer, here is it applied to your testdata:


<xsl:template match="/">
   <testnode>
      <xsl:attribute name="att1">
        <xsl:apply-template select="//test/@att1" />
      </xsl:attribute>
      <xsl:attribute name="att2">
        <xsl:apply-template select="//test/@att2" />
      </xsl:attribute>
    </testnode>
</xsl:template>

<xsl:template match="@att1 | @att2">
  <xsl:value-of select="." />
  <xsl:text>,</xsl:text>
</xsl:template>

<xsl:template match="@att1[last()] | @att2[last()]">
  <xsl:value-of select="." />
</xsl:template>


Good luck with coding,


Cheers,
-- Abel Braaksma

Current Thread