SV: [xsl] How to join elements

Subject: SV: [xsl] How to join elements
From: "Nordström, Jonas" <Jonas.Nordstrom@xxxxxxxxxx>
Date: Thu, 23 Jan 2003 13:22:12 +0100
Maybe this works:

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

Jonas Nordström

-----Ursprungligt meddelande-----
Från: Ian Stokes-Rees [mailto:i.stokes-rees1@xxxxxxxxxxxxxxxx]
Skickat: den 22 januari 2003 18:31
Till: 'XSL-List@xxxxxxxxxxxxxxxxxxxxxx'
Ämne: [xsl] How to join elements


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.

Cheers,

Ian.

-- 
Ian Stokes-Rees                     i.stokes-rees@xxxxxxxxxxxxxxxx
Particle Physics, Oxford            http://www-pnp.physics.ox.ac.uk/~stokes/

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

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


Current Thread