Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

XSLT Concatenating the values with comma (,)

Tags:

xslt

i need to loop through all the nodes in the xml document and append the values with comma ( , ) finally after the last element i should not have commma (,)

can any body help me.

thanking you, Ramana kumar.

like image 703
Ramana kumar Avatar asked Jan 04 '10 07:01

Ramana kumar


2 Answers

You can do something like this:

<xsl:for-each select="element">
    <xsl:value-of select="whatever" />
    <xsl:if test="position() != last()">, </xsl:if>
</xsl:for-each>

The position() function returns the index of the current element in the for-each context, and last() returns the index of the last element.

The Conditional Processing with xsl:if section of the XSLT documentation provides more information about this example.

like image 124
Greg Hewgill Avatar answered Oct 20 '22 07:10

Greg Hewgill


In XSLT 2.0 (or greater) you can use the string-join function.

<xsl:value-of  select="string-join(/element/whatever, ',')"/>
like image 30
Mads Hansen Avatar answered Oct 20 '22 07:10

Mads Hansen