2014-09-03 64 views
0

我完全不熟悉xsl,能否请你帮助我。以下代码导致3单元格行,形成一个网格。xslt模板 - 在网格中每行更改单元格

<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个细胞。我需要改变什么?

回答

0

此行

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

被检查,如果当前行是3的倍数,加一(模运算)。你需要将3改为4,所以它可以在每4个元素上工作,而不是每3个元素。

此行

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

通过其following-siblingposition()小于(&lt;)3.如果你改变了3到4的所有元素循环,你会得到所有的元素,其地位已经不如比4,这是你想要的。

+0

谢谢你解释这个!我会放弃这一点。 – isosmall 2014-09-03 21:53:15