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

如何使用XSLT处理XML元素值:移除或替换指定标签

XSLT处理XML中元素内特定标签的移除与替换方案

要实现保留原XML结构,仅处理元素内特定标签的需求,核心是利用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>

    <!-- 移除<br/>、<suffix/>、<list/>标签 -->
    <xsl:template match="Value/br | Value/suffix | Value/list"/>

    <!-- 将<prefix>替换为" .",闭合标签也替换为" ." -->
    <xsl:template match="Value/prefix">
        <xsl:text> .</xsl:text>
        <xsl:apply-templates/>
        <xsl:text> .</xsl:text>
    </xsl:template>

    <!-- 将<bulletlist>替换为<ul>,闭合标签替换为</ul> -->
    <xsl:template match="Value/bulletlist">
        <ul>
            <xsl:apply-templates/>
        </ul>
    </xsl:template>
</xsl:stylesheet>

模板逻辑说明

  • 身份模板:作为基础,确保原XML的所有结构(包括、、、等节点)完全保留,仅当遇到匹配到的目标标签时才执行自定义逻辑。
  • 移除标签模板:匹配下的
    、、,模板内无输出,直接移除这些标签。
  • 替换模板:匹配下的元素,输出" ."后递归处理其内部内容,最后再输出" .",实现前后添加指定字符串的效果。
  • 替换模板:匹配下的元素,将其替换为
      标签,并保留内部内容。

    输入输出验证

    输入XML(你提供的示例)经过上述XSLT转换后,会得到你期望的输出结果:

    • <Value><br/>test</Value> → <Value>test</Value>
    • <Value><prefix>test2</prefix></Value> → <Value> .test2 .</Value>
    • <Value><suffix/>test3</Value> → <Value>test3</Value>
    • <Value><list/><bulletlist>test4</bulletlist></Value> → <Value><ul>test4</ul></Value>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 16:53:27