You need to enable JavaScript to run this app. 如何使用XSLT移除XML<desc>节点内特定class的span标签
优惠活动
大模型
产品
解决方案
定价
更多

如何使用XSLT移除XML<desc>节点内特定class的span标签

实现思路
  • 采用XSLT标准的身份模板模式,先完整保留XML原有全部节点、属性和文本结构,再通过精准路径匹配跳过需要移除的目标span节点,不会误删其他无关内容。
  • 匹配规则严格限定范围:只针对<desc>节点内部、class属性值为st的<span>标签做移除处理,其余同名称标签、同属性但不属于desc范围的元素都会原样保留。
可直接使用的XSLT代码
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <!-- 身份模板:原样复制所有节点、属性和文本 -->
  <xsl:template match="node() | @*">
    <xsl:copy>
      <xsl:apply-templates select="node() | @*"/>
    </xsl:copy>
  </xsl:template>

  <!-- 精准移除desc节点下class为st的span标签 -->
  <xsl:template match="desc/span[@class = 'st']"/>
</xsl:stylesheet>
适配调整说明
  • 上述代码默认处理<desc>直接子级的目标span,和你提供的示例场景完全匹配,转换后输出结果和预期效果完全一致。
  • 如果存在<desc>标签内部嵌套多层、目标span不在直接子级的情况,只需将匹配规则的路径修改为//desc//span[@class = 'st'],就能覆盖desc下所有嵌套层级的同类型span元素。
  • 规则写死了class值等于st,不会匹配其他class属性的span标签,不会造成内容误删。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.29 23:27:02