在XSLT中显示备用样式类

时间:2014-11-26 13:24:36

标签: xslt

我想在XSLT中显示备用样式类。 这是我的代码:

<xsl:variable name="oddEven" select="1" />
<xsl:for-each select="//ProfileBR">
    <xsl:variable name="i" select="((position() - 1) * 2) + 1" />
    <xsl:variable name="iBR" select="substring(//BRValue,$i,1)" />
    <xsl:variable name="jBR" select="substring(//BRValue,$i+1,1)" />
    <xsl:if test="$iBR='1' or $jBR='1'">
        <xsl:choose>
            <xsl:when test="$oddEven='1'">
                <tr class="sbListOddCell">
                    <xsl:if test="$iBR=0">
                        <td></td>
                    </xsl:if>
                    <xsl:call-template name="JobInfoSection">
                        <xsl:with-param name="ii" select="$i"/>
                        <xsl:with-param name="jj" select="$i+1"/>
                        <xsl:with-param name="iiBR" select="$iBR"/>
                        <xsl:with-param name="jjBR" select="$jBR"/>
                    </xsl:call-template>
                    <xsl:if test="$jBR=0">
                        <td></td>
                    </xsl:if>
                </tr>
                <xsl:variable name="oddEven" select="0" />
            </xsl:when>
            <xsl:otherwise>
                <tr class="sbListEvenCell">
                    <xsl:if test="$iBR=0">
                        <td></td>
                    </xsl:if>
                    <xsl:call-template name="JobInfoSection">
                        <xsl:with-param name="ii" select="$i"/>
                        <xsl:with-param name="jj" select="$i+1"/>
                        <xsl:with-param name="iiBR" select="$iBR"/>
                        <xsl:with-param name="jjBR" select="$jBR"/>
                    </xsl:call-template>
                    <xsl:if test="$jBR=0">
                        <td></td>
                    </xsl:if>
                </tr>
                <xsl:variable name="oddEven" select="1" />
            </xsl:otherwise>
        </xsl:choose>
    </xsl:if>
</xsl:for-each>

目前,oddEven逻辑无效,因为该值不会持续存在。

注意:位置与显示完全无关。如果条件满足,则仅显示<tr>否则。

1 个答案:

答案 0 :(得分:0)

我认为使用CSS对于这种情况会更好,或者可能是Javascript ..

table tr:nth-child(odd) td{
}
table tr:nth-child(even) td{
}

我认为你也可以使用一个计数器,如果你已经将循环风格改为像这样的递归

<xsl:template name="loop">
        <xsl:param name="other param"/>
        <xsl:param name="count"/>
        <!-- logic then recurse and pass the counter with $counter + 1-->
</xsl:template>

正如你每次都可以使用新值路径参数。

我希望这可以提供帮助!