You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在XSL的apply-template中仅在最后一个同级节点后创建div元素

解决方案

你可以通过XPath判断当前节点是否为最后一个同级Lion节点,有两种常用实现方式:

方法1:使用position()+last()组合判断

适配你当前的场景,你是直接选中所有Mammal/Lion节点按文档顺序处理,直接判断当前节点在选中节点集中的位置是否为最后一位即可,写法更简洁:

<!-- 修正你原代码的模板结束标签笔误,原来的</xsl:kingdom>是错误写法 -->
<xsl:template match="kingdom">
  <xsl:apply-templates select="Mammal/Lion"></xsl:apply-templates>
</xsl:template>

<xsl:template match="Mammal/Lion">
  <!-- 原有处理Lion节点的逻辑,例如输出节点数值等,可根据你的需求补充 -->
  <p>Lion数值:<xsl:value-of select="."/></p>
  
  <!-- 仅最后一个同级节点输出div -->
  <xsl:if test="position() = last()">
    <div>All mamals are printed</div>
  </xsl:if>
</xsl:template>

方法2:使用following-sibling判断

如果你的apply-templates存在过滤条件、不是选中所有Lion节点,更推荐用这种方法,直接判断当前节点后是否还有同名称的同级节点,不受节点选择规则的影响,兼容性更强:

<xsl:if test="not(following-sibling::Lion)">
  <div>All mamals are printed</div>
</xsl:if>

内容的提问来源于stack exchange,提问作者vishnu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 21:15:05