使用xslt为每三个div包裹一个div

时间:2013-07-30 13:06:00

标签: xml xslt html web

以下代码能够选择每行中的第一个元素并显示它,但是如何围绕第一个元素及其后两个子元素(如果有的话)包装rowContainer类。

 <xsl:for-each select="ViewAll/ROW[position() mod 3 = 1]">
                <div class="rowContainer" align="center">
                **<xsl:for-each select="the current position and the next two">**
                    <div class="grid" align="center">
                        <table class="appTable" border="0" width="auto" bgcolor="">
                            <tr>
                            <td rowspan='2' width="80px" height="80px">
                                <img src="{substring(SC_DF_FIELD_3,9,string-length(substring-before(SC_DF_FIELD_3,'&gt;'))-21)}"/>
                            </td>
                            <td width="auto" height="60px"><b class="appName"><xsl:value-of select="SC_DF_FIELD_1"/></b><div style="display:none">;</div></td>
                            </tr>
                            <tr style="vertical-align:text-top">
                            <td>                            
                                <div class="type"><xsl:value-of select="SC_DF_FIELD_5"/><div style="display:none">;</div></div>
                                <div class="price"><xsl:value-of select="SC_DF_FIELD_7"/><div style="display:none">;</div></div>
                                <div class="url" style="display:none"><xsl:value-of select="SC_DF_FIELD_6"/><div style="display:none">;</div></div>
                                <div class="date" style="display:none"><xsl:value-of select="SC_SYS_DF_DT_UPDATED"/><div style="display:none">;</div></div>
                            </td>
                            </tr>
                            <tr>
                            <td colspan="2" align='left' height="60px"> 
                                <div class="description"><b>Description: </b><xsl:value-of select="SC_DF_FIELD_2"/></div>
                            </td>
                            </tr>
                            <tr>
                            <td colspan='2' style="vertical-align:text-top" align='center'>     
                                <div class="downLoadButton"><ul><li class="view"><a onclick='javascript:SerialPopUp($(this).parents("*:eq(5)").text())' style="color:019DDD"><b>Download</b><div style="display:none">;</div></a></li></ul></div>
                            </td>
                            </tr>
                        </table>
                    </div>
                  **</xsl:for-each>**
                </div>
            </xsl:for-each>

最后,我希望生成的代码如下所示:

<div class="rowContainer">
      <div class="grid"/>
      <div class="grid"/>
      <div class="grid"/>
</div>

<div class="rowContainer">
      <div class="grid"/>
      <div class="grid"/>
      <div class="grid"/>
</div>

<div class="rowContainer">
      <div class="grid"/>
      <div class="grid"/>
</div>

提前感谢您提供给我的任何帮助。

1 个答案:

答案 0 :(得分:1)

您尚未显示输入XML的结构,但

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

应该这样做。