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

如何用Python批量处理文件夹XML文件,删除指定标签及内容

Python批量清理XML文件实现方案

前置说明

仅使用Python标准库,无需额外安装第三方依赖,支持单文件5万行以上的大体积XML处理。

完整代码

import os
import glob
import xml.etree.ElementTree as ET

def process_xml(file_path, output_dir=None):
    # 解析XML文件
    tree = ET.parse(file_path)
    root = tree.getroot()
    
    # 找到ALL_INSTANCES节点
    all_instances = root.find('ALL_INSTANCES')
    if all_instances is None:
        print(f"文件{file_path}未找到ALL_INSTANCES节点,跳过处理")
        return
    
    # 删除包含<code>Start</code>的instance节点
    for instance in all_instances.findall('instance'):
        code_elem = instance.find('code')
        if code_elem is not None and code_elem.text.strip() == 'Start':
            all_instances.remove(instance)
    
    # 生成处理后的文件结构
    new_root = ET.Element('ALL_INSTANCES')
    new_root.extend(all_instances)
    new_tree = ET.ElementTree(new_root)
    
    # 确定输出路径
    if output_dir is None:
        # 默认覆盖原文件,建议测试阶段指定output_dir备份原文件
        output_path = file_path
    else:
        os.makedirs(output_dir, exist_ok=True)
        output_path = os.path.join(output_dir, os.path.basename(file_path))
    
    # 写入文件,保留utf-8编码
    with open(output_path, 'wb') as f:
        new_tree.write(f, encoding='utf-8', xml_declaration=True)
    print(f"文件{file_path}处理完成,已保存至{output_path}")

if __name__ == "__main__":
    # 此处修改为你的XML文件所在文件夹路径
    XML_FOLDER = "/path/to/your/xml/folder"
    # 此处修改为输出文件夹路径,设为None则直接覆盖原文件
    OUTPUT_FOLDER = "/path/to/your/output/folder"
    
    # 遍历文件夹下所有xml文件
    xml_files = glob.glob(os.path.join(XML_FOLDER, "*.xml"))
    for xml_file in xml_files:
        process_xml(xml_file, OUTPUT_FOLDER)

使用说明

  • 修改代码中XML_FOLDER变量为你存放XML文件的文件夹绝对路径
  • 修改OUTPUT_FOLDER变量为处理后文件的保存路径,若设为None会直接覆盖原文件,建议测试阶段先指定单独的输出目录避免原文件损坏
  • 直接运行脚本即可批量处理所有XML文件

提示:如果需要输出的XML有格式化缩进,可在写入文件前添加一行代码:ET.indent(new_root, space=" ")(仅支持Python3.9及以上版本)

实现逻辑对应需求

  • 仅保留ALL_INSTANCES节点作为最终输出的根节点,自动删除该标签前后的所有内容
  • 遍历所有instance节点,只要子节点code的内容为Start就直接删除该instance
  • 自动遍历指定目录下所有后缀为.xml的文件,批量执行处理逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 19:45:04