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

如何使用XSLT移除XML中的指定元素标签

移除XML中特定嵌套元素块的XSLT解决方案

要移除你XML里<InitgPty>下的整个<Id>嵌套块(包含<OrgId>、<Othr>等子元素),我们可以利用XSLT的身份模板配合针对性的匹配模板来实现,重点要处理原XML的默认命名空间,否则会出现元素匹配失败的问题。

完整XSLT代码

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" 
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:ns="urn:iso:std:iso:20022:tech:xsd:pain.001.001.03">
    <!-- 身份模板:默认复制所有节点和属性 -->
    <xsl:template match="@*|node()">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
    </xsl:template>

    <!-- 匹配要移除的<InitgPty>下的<Id>元素,不输出任何内容 -->
    <xsl:template match="ns:InitgPty/ns:Id"/>
</xsl:stylesheet>

代码说明

  1. 命名空间绑定:原XML使用了默认命名空间urn:iso:std:iso:20022:tech:xsd:pain.001.001.03,我们在XSLT里将其绑定到前缀ns,这样才能正确匹配到目标元素。
  2. 身份模板:这个模板是XSLT的基础,负责原样复制XML中所有未被特殊模板匹配的节点和属性,确保其他内容不受影响。
  3. 移除模板:专门匹配<InitgPty>下的<Id>元素(通过ns:前缀指定命名空间),该模板没有任何输出逻辑,所以匹配到的<Id>及其所有子元素都会被移除。

转换后效果

原XML中的<InitgPty>部分会变成:

<InitgPty>
    <Nm>TestName</Nm>
</InitgPty>

其余所有内容都会完整保留,只有你指定的<Id>嵌套块被移除。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 19:37:34