1

我必须通过以下方式检查应用于某些元素的模板中的最后一个元素 -

<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 逻辑,所以不想复制它来只添加这个属性。

4

1 回答 1

0

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

<xsl:if test="position() = last()">
  <xsl:attribute name="class">last</xsl:attribute>
</xsl:if>
于 2013-08-06T16:10:51.267 回答