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

如何根据子节点值移除XML中的指定节点(VW车型示例)

解决方案

你的XSLT代码问题在于仅匹配根节点后直接复制根元素,没有对car节点做针对性过滤。要实现移除指定节点,最常用的方式是身份模板+匹配排除:

<?xml version="1.0"?>
<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>

    <!-- 匹配并排除manufacturer为'VW'的car节点 -->
    <xsl:template match="car[manufacturer = 'VW']"/>
</xsl:stylesheet>

工作原理

  • 身份模板会递归复制XML中的所有节点、属性和文本,保证原有结构不变。
  • 第二个模板专门匹配满足manufacturer = 'VW'的car节点,模板体为空,意味着这些节点不会被复制到输出结果中,从而实现移除效果。

测试验证

将上述XSLT应用到你的原XML,会直接输出你期望的结果:

<?xml version="1.0" encoding="UTF-8"?>
<root>
    <cars>
        <car>
            <manufacturer>Audi</manufacturer>
        </car>
        <car>
            <manufacturer>Lada</manufacturer>
        </car>
    </cars>
</root>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 11:35:19