RE: [xsl] Concatenation of Element Values

Subject: RE: [xsl] Concatenation of Element Values
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Fri, 22 Jun 2007 10:20:56 +0100
Sorry, the ../* is wrong, it's looking relative to ID rather than to
ADDRESS. The right answer depends on exactly where your <addressField1> etc
elements are.

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

> 
> <xsl:template match="ADDRESS">
>   <xsl:for-each select="ADDRESSFIELD/ID">
>     <xsl:value-of select="../*[name()=concat('addressField', 
> current())"/>
>     <xsl:if test="position()!=last()">;</xsl:if>
>   </xsl:for-each>
> </xsl:template>
> 
> (I'm assuming here that addressField2, etc, are siblings of 
> ADDRESS, but you didn't make this clear).
> 
> Incidentally, coding data into element names like this feels 
> like bad XML design. <addressField id="2"> would be much 
> cleaner than <addressField2>.
> 
> Michael Kay
> http://www.saxonica.com/
> 
> > -----Original Message-----
> > From: Mariecon Saberon [mailto:yc0n2x@xxxxxxxxx]
> > Sent: 22 June 2007 05:08
> > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> > Subject: [xsl] Concatenation of Element Values
> > 
> > hi list,
> > 
> > i'm a newbie on XSL and i'm really overwhelmed by the 
> information i've  
> > seen on the internet that i'm already confused as to how 
> i'm going to  
> > come up with the rights codes for my program. here's my problem..
> > 
> > i have an xml that's like this:
> > <ADDRESS>
> >     <ADDRESSFIELD>
> >             <ID>2</ID>
> >     <ADDRESSFIELD>
> >     <ADDRESSFIELD>
> >             <ID>5</ID>
> >     <ADDRESSFIELD>
> >     <ADDRESSFIELD>
> >             <ID>9</ID>
> >     <ADDRESSFIELD>
> > <ADDRESS>
> > 
> > then i also have some post parameters:
> > <addressField2>some Street address</addressField2> 
> <addressField5>some 
> > Town address</addressField5> <addressField9>some City 
> > address</addressField9>
> > 
> > and this is the value i need to get:
> > <addressField2>;<addressField5>;<addressField9>
> > ex. some Street address; some Town address; some City address
> > 
> > so far, this is what i have:
> > <xsl:template match="ADDRESS">
> >     <xsl:for-each select="ADD">
> >         <xsl:call-template name="getAdd">
> >             <xsl:with-param name="addField">
> >                 in_add<xsl:value-of select="ID"/>
> >             </xsl:with-param>
> >         </xsl:call-template>
> >     </xsl:for-each>
> > </xsl:template>
> > 
> > <xsl:template name="getAdd">
> >     <xsl:param name="addField"/>
> > 
> >     <!-- this is where i'm lost. i'm lost on how im gonna get the  
> > address field values and concatenate them -->
> >  
> > </xsl:template>
> > 
> > 
> > 
> > hope someone can shed some light on my blurry mind. 
> > any help is
> >  greatly greatly appreciated.  thanks!
> > 
> > -ycon
> > 
> > 
> >  
> > ______________________________________________________________
> > ______________________
> > Never miss an email again!
> > Yahoo! Toolbar alerts you the instant new Mail arrives.
> > http://tools.search.yahoo.com/toolbar/features/mail/

Current Thread