获取xslt中的最后一项

时间:2014-01-30 08:24:14

标签: css xml xslt position umbraco

我有这件XSLT

<xsl:template match="/">

    <xsl:variable name="boxes" select="$currentPage/boxes/descendant::nodeId [text() != '']" />

    <xsl:if test="count($boxes) &gt; 0">

        <div id="boxContainer">

            <ul class="noList" id="frontBoxes">     

            <xsl:for-each select="$boxes">

                <xsl:variable name="node" select="umbraco.library:GetXmlNodeById(.)" />                             
                <xsl:variable name="imageNodes" select="umbraco.library:Split($node/descendant::boxImage, ',')" />

                <xsl:for-each select="$imageNodes/descendant::value">
                    <xsl:variable name="image" select="umbraco.library:GetMedia(.,0)" />                                        
                        <li>
                            <a class="boxLink">
                                <xsl:attribute name="href">
                                    <xsl:value-of select="umbraco.library:NiceUrl($node/descendant::boxLink)" />
                                </xsl:attribute>

                                <xsl:value-of select="$node/@nodeName" />
                            </a>

                            <img src="{Eksponent.CropUp:Url($image/umbracoFile, 'frontBoxes')}" width="{$image/umbracoWidth}" height="{$image/umbracoHeight}" alt="" />
                            <xsl:value-of select="$node/descendant::bodyText" />                            
                        </li>
                </xsl:for-each>

            </xsl:for-each>

            </ul>
        </div>
    </xsl:if>

</xsl:template>

如果包含带有图像,文本和链接的首页框的最大值和最小值。

如何获取最后一项,以便我可以在最后class="last"

中输出<li>

我已尝试使用<xsl:if test="position()">在最后一个for-each中但是这不能按预期工作。

1 个答案:

答案 0 :(得分:2)

使用

<xsl:choose>
    <xsl:when test="position()=last()">
        <!-- set class="list" -->
    </xsl:when>
    <xsl:otherwise>
        <!-- without class="list" -->
    </xsl:otherwise>
</xsl:choose>