xsl-list
[Top] [All Lists]

RE: [xsl] Concatenation of Element Values

2007-06-22 02:21:22
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(_at_)yahoo(_dot_)com]
Sent: 22 June 2007 05:08
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
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/


--~------------------------------------------------------------------
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(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
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(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
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(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>