This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Adding a break character between a group of input data except for the last entry


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]