xlst for-each - добавить класс в 1-й, 4-й, 7-й, 10-й,… пункты

0

Для xslt-1.0, как изменить код ниже, чтобы добавить third класс к первым, четвертому, seveth и т.д. Элементам inner-div?

<div id="myDiv">
    <xsl:for-each select="key('category',  $var1)">
        <div class="inner-div">
            sometext
        </div>
    </xsl:for-each>
</div>

так что, это:

<div id="myDiv">
        <div class="inner-div third">
            sometext
        </div>
        <div class="inner-div">
            sometext
        </div>
        <div class="inner-div">
            sometext
        </div>
        <div class="inner-div third">
            sometext
        </div>
        <div class="inner-div">
            sometext
        </div>
        <div class="inner-div">
            sometext
        </div>
        <div class="inner-div third">
            sometext
        </div>
</div>

Спасибо.

Теги:
xslt
xslt-1.0

1 ответ

3
Лучший ответ

Вы должны выполнить арифметику по модулю в position():

<div id="myDiv">
    <xsl:for-each select="key('category',  $var1)">
        <div>
            <xsl:attribute name="class">
                <xsl:text>inner-div</xsl:text>
                <xsl:if test="(position() mod 3) = 1"> third</xsl:if>
            </xsl:attribute>
            sometext
        </div>
    </xsl:for-each>
</div>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню