This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: position in a conditional for-each
- To: "'xsl-list at lists dot mulberrytech dot com'" <xsl-list at lists dot mulberrytech dot com>
- Subject: RE: [xsl] position in a conditional for-each
- From: Heather Lindsay <heather dot lindsay at Trifolium dot com>
- Date: Wed, 3 Jan 2001 15:46:57 -0500
- Reply-To: xsl-list at lists dot mulberrytech dot com
hi,
Try this instead. The template for "COOLJEX_ATTRIBUTE[@key =
'true']" will only go through the elements that you want and the position()
function can be used to determine when the last element is reached.
<xsl:stylesheet ...>
<xsl:template match="whateverYouHaveHere">
Your other stuff here
<xsl:apply-template match="COOLJEX_ATTRIBUTE[@key = 'true']"/>
your other stuff here
</xsl:template>
<xsl:template match="COOLJEX_ATTRIBUTE[@key = 'true']">
<xsl:value-of select="@name"/>
<xsl:if test="position() != last()">
<xsl:text>,</xsl:text>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
However, I believe you can also do this:
<xsl:for-each select="COOLJEX_ATTRIBUTE[@key = 'true'">
<xsl:value-of select="@name"/>
<xsl:if test="position() != last()">
<xsl:text>,</xsl:text>
</xsl:if>
</xsl:for-each>
Good luck,
Heather
-----Original Message-----
From: James Piva [mailto:james.piva@ndexsystems.com]
Sent: Wednesday, January 03, 2001 3:26 PM
The problem is that I can't know when
the last element to meet the condition
has passed.I would like to omit trailing comma.
<xsl:for-each select="COOLJEX_ATTRIBUTE">
<xsl:if test="@key='true'">
<xsl:value-of select="@name"/>
<xsl:text> , </xsl:text>
</xsl:if>
</xsl:for-each>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list