Re: [xsl] How to join elements

Subject: Re: [xsl] How to join elements
From: Oleg Tkachenko <olegt@xxxxxxxxxxxxx>
Date: Thu, 23 Jan 2003 14:29:11 +0200
Ian Stokes-Rees wrote:
I have spent 30 minutes scanning the XSLT FAQ (on top of looking through the
XSLT spec, and random docs and materials) and could not come up with any
solution to this problem:

<xsl:for-each select="//node"><xsl:value-of select="@name"/>,</xsl:for-each>

outputs:

a,b,c,d,

^----------PROBLEM

The problem is I do not want the last "comma" since in my output format this
is illegal.  I do not know how many node/@name attributes will appear, so
concat is not a solution.  FWIW, node elements can be nested inside node
elements, and this is producing a comma separated list of all node names in
the instance document.

Just don't add comma after last node:


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

--
Oleg Tkachenko
eXperanto team
Multiconn Technologies, Israel


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



Current Thread