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: "Shaikh, Parvez" <Parvez.Shaikh@xxxxxxxxxxxxxxxxxxxxx>
Date: Thu, 29 Mar 2007 17:04:14 -0400
What you said works great. except that it outputs <testnode
att2="a'b'c'd' /> 4 times instead of one
I want it to output only once.
the whole xslt file that I have I am using your idea with the only
change of
<xsl:template match="//testnode"> instead
of match="/"

PS:This is my
second day into XSL and I am going thru the tutorials also
but I have to
finish this XSL thing today. Bear
with me :)

From: Abel Braaksma [] 
Thursday, March 29, 2007 4:47 PM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re: [xsl] concatenate multiple attribute values and assign it
another attribute

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.

that won't change my original answer, here is it applied to your 
<xsl:template match="/">
       <xsl:attribute name="att1">
<xsl:apply-template select="//test/@att1" />
<xsl:attribute name="att2">
select="//test/@att2" />

<xsl:template match="@att1 | @att2">
select="." />

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

Good luck with coding,

-- Abel Braaksma
XSL-List info and archive:
unsubscribe, go to:
or e-mail:
The information contained in this
transmission may be privileged and
confidential and is intended only for the
use of the person(s) named
above. If you are not the intended recipient, or
an employee or agent responsible
for delivering this message to the intended
recipient, any review, dissemination,
distribution or duplication of this
communication is strictly prohibited. If you are
not the intended recipient,
please contact the sender immediately by reply e-mail
and destroy all copies
of the original message. Please note that we do not accept
account orders
and/or instructions by e-mail, and therefore will not be responsible
carrying out such orders and/or instructions.  If you, as the intended
of this message, the purpose of which is to inform and update our
clients, prospects
and consultants of developments relating to our services
and products, would not
like to receive further e-mail correspondence from
the sender, please "reply" to the
sender indicating your wishes.  In the
U.S.: 1345 Avenue of the Americas, New York,
NY 10105.

Current Thread