我正在寻找一些正确编码的 XSLT(用于 Umbraco CMS),但我有点难过。我想做的是:
从某个节点开始,将每个子节点放入一个div;对于每 3 个孩子,包装在一个父 div 中。
我尝试实现一个结构,而不是我的混乱for-each
,choose
和声明,但我似乎无法掌握它的窍门;所以这是我现在对 XSLT 的混乱(我确信这是不好的做法并且对性能很糟糕,但我现在真的不知道该怎么做):when
apply-template
<div class="row four">
<h2>Smart Phones <a href="#" class="see-all">see all smart phones →</a></h2>
<div class="row three"> <!-- This div should be created again for every 3 divs -->
<xsl:for-each select="umbraco.library:GetXmlNodeById('1063')/descendant::*[@isDoc and string(showInMainNavigation) = '1']">
<xsl:choose>
<xsl:when test="position() < 3">
<div class="col">
<a href="{umbraco.library:NiceUrl(./@id)}">
<img class="phonePreviewImg" src="{./previewImage}" style="max-width:117px; max-height:179px;" />
<h4 class="phoneTitle"><xsl:value-of select="./@nodeName" />/h4>
<p class="phonePrice">$<xsl:value-of select="./price" /></p
</a>
</div>
</xsl:when>
<xsl:when test="position() = 3"> <!-- set this div to include class of `omega` -->
<div class="col omega">
<a href="{umbraco.library:NiceUrl(./@id)}">
<img class="phonePreviewImg" src="{./previewImage}" style="max-width:117px; max-height:179px;" />
<h4 class="phoneTitle"><xsl:value-of select="./@nodeName" />/h4>
<p class="phonePrice">$<xsl:value-of select="./price" /></p
</a>
</div>
</xsl:when>
</xsl:choose>
</xsl:for-each>
</div> <!-- End Row Three -->
</div> <!-- End Row Four -->
显然,这段代码不会产生“每三个换行一次”。谁能阐明我需要做些什么来实现这一目标?