我有一个具有这种结构的XML,我正在为所有项目做一个foreach。但我想用这种结构做一个标记。 第一个div为class" col-md-4",接下来的两个div与类" col-md-6",并重复该逻辑,如示例所示。我真的不知道怎么做,因为我不能在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>
答案 0 :(得分: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>