xsl-list
[Top] [All Lists]

RE: append values to a String

2003-02-13 10:08:57
Here's another variation, the only difference being the use
of normalize-space() to eliminate "empty" elements like <K1>  </K1>

There've been a couple of good posts comparing the different methods of
testing elements.  (Now if I could just figure out the syntax of axes...)

--Jeff

<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl='http://www.w3.org/1999/XSL/Transform' >
<xsl:output method="xml" indent="yes"/>
        <xsl:template match="Sample">
                <xsl:variable name="csvlist">
                        <xsl:for-each select="child::*[normalize-space()]">
                                <xsl:value-of select="."/>
                                <xsl:if test="position() != last()">
                                        <xsl:text>,</xsl:text>
                                </xsl:if>
                        </xsl:for-each>
                </xsl:variable>
        </xsl:template>
</xsl:stylesheet>

Here's the xml:

<Sample>
      <K1/>
      <K2>something</K2>
      <K3>something else</K3>
      <K4/>
</Sample>

I'd like to loop through all the children nodes under
<Sample>, find those
have non-empty value, and construct a String with all those
values append to
each other with a "," delimiter in between them, i.e. the result String
should look like:  "something,something else,".  And I need to
assign this
String to a variable since I need to use it elsewhere.


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



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