xslt模板 - 在网格中每行更改单元格

时间:2014-09-03 20:35:24

标签: xslt grid

我对xsl一点都不熟悉,能帮帮我吗。以下代码生成3个单元格的行,形成网格。

<xsl:template match="Entity">
    <xsl:if test="position() mod 3 = 1">
      <div class="row">
        <xsl:for-each select=". | following-sibling::*[position() &lt; 3]">
          <xsl:call-template name="SubCatCell" />
        </xsl:for-each>
      </div>
    </xsl:if>
</xsl:template>

我认为它会动态地产生以下内容:

<div class="row">
   <div class="cell"></div>
   <div class="cell"></div>
   <div class="cell"></div>
</div>

我需要每行4个细胞。我需要改变什么?

1 个答案:

答案 0 :(得分:0)

这一行

<xsl:if test="position() mod 3 = 1">

检查当前行是否为3的倍数加1(模运算)。您需要将3更改为4,因此它适用于每个第4个元素,而不是每3个元素。

这一行

<xsl:for-each select=". | following-sibling::*[position() &lt; 3]">

循环遍历其following-sibling position()小于&lt;)3的所有元素.3。如果将3更改为4,您将获得所有位置小于4的元素,这就是你想要的。