This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: Adding a break character between a group of input data except for the last entry
- From: Jörg Heinicke <joerg dot heinicke at gmx dot de>
- To: <xsl-list at lists dot mulberrytech dot com>
- Date: Fri, 30 Nov 2001 01:44:11 +0100
- Subject: Re: [xsl] Adding a break character between a group of input data except for the last entry
- References: <OFC3A276AF.E6E2A9FE-ON88256B13.00811D55@sentius.com>
- Reply-to: xsl-list at lists dot mulberrytech dot com
Hi Steve,
it's really easy with position() and last():
<xsl:for-each select="prescriber-info/trade-name">
<xsl:value-of select="text()"/>
<xsl:if test="position() != last()">; </xsl:if>
</xsl:for-each>
or like your one with the 1st position:
<xsl:for-each select="prescriber-info/trade-name">
<xsl:if test="position() != 1">; </xsl:if>
<xsl:value-of select="text()"/>
</xsl:for-each>
> <annotationsText>
> <xsl:variable name="line"
select="prescriber-info/trade-name
> "/>
> <xsl:for-each select="prescriber-info/trade-name">
> <xsl:variable name="trade_names" select="
> prescriber-info/trade-name"/>
The error is here. <xsl:for-each> changes the context-node. And you want to
have prescriber-info/trade-name/prescriber-info/trade-name in your variable,
what's always empty. Using it this way it has to be <xsl:variable
name="trade_names" select="text()"/> or select="." .
> <xsl:if test= "$trade_names != $line">; </
> xsl:if> <xsl:value-of select="."/></xsl:for-each>
> </annotationsText>
> The if statement always comes out false. Which means $trade_name equals
> $line. Why? How else could I get it done.
> output from above code
Regards,
Joerg
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list