我想创建一个HTML表格,其中行颜色会根据位置和内容而变化。但是我不想交替每一行,而是希望能够将行组合在一起,这样我就可以拥有这样的XML:
<itemlist>
<item group="0">Conent...blah blah</item>
<item group="0">Content...who cares</item>
<item group="1">Content</item>
<item group="2">Content</item>
<item group="2">Content</item>
</itemlist>
所有group = 0的项目都是一种颜色,group = 1的项目是另一种,group = 2要么切换回第一种颜色,要么是他们自己的颜色。
所有我似乎都能找到替代每一行的方法,但在实际使用节点数据来帮助我做出决定时,我似乎无法“理解”。
答案 0 :(得分:3)
以下是使用“选择”基于组值应用不同类值的示例。如果您想以特定方式处理每个组,那么类似于此的内容将起作用。如果处理第2组的决策逻辑更复杂,那么您可以在第2组的“when”语句测试中添加其他决策逻辑。
<xsl:template match="/">
<ul>
<xsl:apply-templates select="itemlist/item"/>
</ul>
</xsl:template>
<xsl:template match="item">
<li>
<xsl:attribute name="class">
<xsl:choose>
<xsl:when test="@group = 0">
red
</xsl:when>
<xsl:when test="@group = 1">
green
</xsl:when>
<xsl:when test="@group = 2">
blue
</xsl:when>
<xsl:otherwise>
black
</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<xsl:value-of select="."/>
</li>
</xsl:template>
答案 1 :(得分:1)