因此,您需要檢查是否有多個圖像。當有零或一個時,什麼都不顯示,當有多個時,顯示(最多)前四個?那麼怎麼樣
<xsl:if test="count($extraimages/productimages/productimage) > 1">
<xsl:for-each select="($extraimages/productimages/productimage)[position() <= 4]">
<li>something</li>
</xsl:for-each>
</xsl:if>
括號有所作爲,如果有一個以上的productimages
元素$extraimages
- 用括號你會得到不超過四個圖像,沒有他們,你會得到所有productimage
元素是在其各自的productimages
子元素的前四個productimage
子元素內,其可能總共超過四個。
您還可以在你的榜樣的extension
檢查中的問題,納入你會做這樣的事情
<xsl:if test="count($extraimages/productimages/productimage[extension != '.pdf']) > 1">
<xsl:for-each select="($extraimages/productimages/productimage[extension != '.pdf'])[position() <= 4]">
<li>something</li>
</xsl:for-each>
</xsl:if>
再次括號可能會或可能不會取決於$extraimages
結構是必要的。
如果你想顯示的圖像2-5而不是1-4,那麼你不需要if
,它只是變得
<xsl:for-each select="
($extraimages/productimages/productimage[extension != '.pdf'])
[position() > 1][position() <= 5]">
<li>something</li>
</xsl:for-each>
因爲select
將選擇什麼都沒有,如果有比少兩個非pdf圖像。