2016-05-30 126 views
0

我有一個這種結構的XML,我正在做所有項目的foreach。但是我想用這個結構做一個標記。 第一個帶有「col-md-4」類的div,下兩個div與類「col-md-6」,並重復該示例中的邏輯。我真的不知道該怎麼做,因爲我不能在foreach裏面使用變量,我做但不存在累積變量。 有人可以幫我一把嗎?Xsl foreach變量

<items> 
<item>A</item> 
<item>B</item> 
<item>C</item> 
<item>D</item> 
<item>E</item> 
<item>F</item> 
<item>G</item> 
<item>H</item> 
<item>I</item> 
<item>J</item> 
</items> 

例子:

<div class="col-md-4"> 
    A 
    </div> 
    <div class="col-md-6"> 
    B 
    </div> 
    <div class="col-md-6"> 
    C 
    </div> 
    <div class="col-md-4"> 
    D 
    </div> 
    <div class="col-md-6"> 
    E 
    </div> 
    <div class="col-md-6"> 
    F 
    </div> 
    <div class="col-md-4"> 
    G 
    </div> 

回答

1

您可以使用當前元素的位置的foreach一些基本的數學:

<xsl:for-each select="item"> 
    <div> 
    <xsl:attribute name="class"> 
     <xsl:choose> 
     <!-- every third item starting from the first one is col-md-4, others - col-md-6 --> 
     <xsl:when test="(position() - 1) mod 3 = 0">col-md-4</xsl:when> 
     <xsl:otherwise>col-md-6</xsl:otherwise> 
     </xsl:choose> 
    </xsl:attribute> 
    <xsl:value-of select="text()"/> 
</div> 

+0

你是天才!!!!謝謝! – user2112420