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
att1="1,2,3,4"
att2="a'b'c'd' /> 4 times instead of one
I want it to output only once.
In
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 :)



-----Original
Message-----
From: Abel Braaksma [mailto:abel.online@xxxxxxxxx] 
Sent:
Thursday, March 29, 2007 4:47 PM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re: [xsl] concatenate multiple attribute values and assign it
to
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.
>   

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
--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To
unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail:
<mailto:xsl-list-unsubscribe@xxxxxxxxxxxxxxxxxxxxxx>
--~--
-----------------------------------------
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
for
carrying out such orders and/or instructions.  If you, as the intended
recipient
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