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

XML值提取需求:用XSLT排除filelist.txt生成新XML

没问题,这就帮你写出能精准排除filelist.txt的XSLT代码,不管它在XML里的哪个位置!

解决方案:排除XML中值为filelist.txt的元素

下面是可以直接使用的XSLT代码,它会完整保留XML中所有内容,只排除文本值恰好是filelist.txt的元素,无论该元素在文档的哪个层级或位置:

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

    <!-- 匹配所有值为"filelist.txt"的元素,不生成输出(即排除) -->
    <xsl:template match="*[text()='filelist.txt']"/>
</xsl:stylesheet>

代码说明

  • 身份模板:这是XSLT的基础模板,作用是原样复制XML中的所有内容(元素、属性、文本节点等),确保除了我们指定要排除的部分,其他内容都完整保留。
  • 排除模板:专门匹配所有文本内容等于filelist.txt的元素,这个模板没有任何输出逻辑,所以匹配到的元素会被直接跳过,不会出现在最终的XML结果里。

增强鲁棒性:处理带空格的情况

如果你的XML中filelist.txt前后可能有多余的空格(比如 filelist.txt ),可以把排除模板改成下面这样,用normalize-space()去除文本前后的空格后再匹配:

<xsl:template match="*[normalize-space(text())='filelist.txt']"/>

示例演示

输入XML

<files>
    <entry>filelist.txt</entry>
    <document>manual.docx</document>
    <subfolder>
        <file>filelist.txt</file>
        <file>photo.jpg</file>
    </subfolder>
</files>

转换后输出XML

<files>
    <document>manual.docx</document>
    <subfolder>
        <file>photo.jpg</file>
    </subfolder>
</files>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:17:54