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: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Thu, 29 Mar 2007 22:00:57 +0100
> I am trying to concat the value of multiple occurence of an 
> attribute output it as an attribute once.
> 
> <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" />

In XSLT 2.0 (correcting your XML input)

<testnode>
  <xsl:attribute name="att1" select="testnode/@att1" separator=","/>
  <xsl:attribute name="att2" select="testnode/@att2" separator=","/>
</testnode>

In 1.0

<testnode>
  <xsl:attribute name="att1">
    <xsl:for-each select="testnode">
      <xsl:value-of select="@att1"/>
      <xsl:if test="position()!=last()">,</xsl:if>
etc.

Michael Kay
http://www.saxonica.com/

Current Thread