Ramana kumar
Ramana kumar

Reputation: 205

XSLT Concatenating the values with comma (,)

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.

Upvotes: 15

Views: 14729

Answers (3)

Mads Hansen
Mads Hansen

Reputation: 66856

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

<xsl:value-of  select="string-join(/element/whatever, ',')"/>

Upvotes: 11

Mads Hansen
Mads Hansen

Reputation: 66856

In XSLT 2.0 (or greater) you can use xsl:value-of with a separator:

<xsl:value-of select="/element/whatever" separator=","/>

If the separator attribute is present, then the effective value of this attribute is used to separate adjacent items in the result sequence

Upvotes: 2

Greg Hewgill
Greg Hewgill

Reputation: 994897

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.

Upvotes: 32

Related Questions