是否可以检查应用模板中的最后一个元素

时间:2013-08-06 15:29:10

标签: xslt

我必须通过以下 -

检查应用于某个元素的模板中的最后一个元素
<xsl:apply-templates select="child::*[@depth='2']" />

以下是要应用的模板 -

<xsl:template match="sm:AudioNode[@depth='2']">
    <li>
    <a>
      <xsl:attribute name="title">
        <xsl:value-of select="@title"/>
      </xsl:attribute>
      <xsl:attribute name="href">
        <xsl:value-of select="@url"/>
      </xsl:attribute>
      <xsl:value-of select="@title"/>
    </a>
</li>
</xsl:template>

现在,在此模板中,我想检查元素是否为最后一个,添加<xsl:attribute name="class"> last</xsl:attribute>

是否可以检查应用模板中的最后一个元素? 如果是,请分享代码。

注意: - 我在此模板中有一个很大的XSLT逻辑,所以不想复制它只是为了添加这个属性。

1 个答案:

答案 0 :(得分:0)

在节点上调用模板时,根据您调用应用模板的节点列表设置上下文位置和大小。所以这应该做你所要求的:

<xsl:if test="position() = last()">
  <xsl:attribute name="class">last</xsl:attribute>
</xsl:if>