2016-05-30 97 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