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: how to increment a variable in a for-each loop


<xsl:for-each select="."> contains always only the current element, so the
position is always 1 -> red background. Remove the for-each and it will
work. A shortened version of your template:

<xsl:template match="*" mode="diff_cols">
    <fo:table-cell  background-color="red">
        <xsl:if test="position() mod 2 = 0">
            <xsl:attribute name="background-color">blue</xsl:attribute>
        </xsl:if>
        <fo:block><xsl:value-of select="."/></fo:block>
    </fo:table-cell>
</xsl:template>

Regards,

Joerg

----- Original Message -----
From: "yan bai" <bytj@yahoo.com>
To: <xsl-list@lists.mulberrytech.com>
Sent: Thursday, January 24, 2002 12:14 AM
Subject: Re: [xsl] how to increment a variable in a for-each loop


> I have a code snippet as below:
> <xsl:template match="*" mode="diff_cols">
> <xsl:for-each select=".">
>     <xsl:if test="position() mod 2 = 1">
> <fo:table-cell  background-color="red">
> <fo:block><xsl:value-of select="."/></fo:block>
> </fo:table-cell>
>     </xsl:if>
>     <xsl:if test="position() mod 2 = 0">
> <fo:table-cell  background-color="blue">
>         <fo:block><xsl:value-of
> select="."/></fo:block>
> </fo:table-cell>
>     </xsl:if>
>     </xsl:for-each>
> </xsl:template>
>
> Unfortunately, it did not work.  The background color
> in all columns is red.
>
> Can you help to debug?
>
> Yan


 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]