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

如何在Python中修改XML文件?按列表修改指定节点Active属性

Python 修改XML指定节点下的Active属性值

假设你需要将kk = ['AAA', 'CCC']列表中节点下的Active元素的value属性修改为False(可按需替换为True),以下是实现代码:

import xml.etree.ElementTree as ET

# 解析XML文件
tree = ET.parse('MC.xml')
root = tree.getroot()

# 目标节点列表
kk = ['AAA', 'CCC']

# 遍历根节点下的所有子节点
for child in root:
    # 检查节点名称是否在目标列表内
    if child.tag in kk:
        # 定位当前节点下的Active元素
        active_elem = child.find('Active')
        if active_elem is not None:
            # 修改value属性值,按需替换为'True'
            active_elem.set('value', 'False')

# 保存修改后的XML文件
tree.write('MC_modified.xml', encoding='UTF-8', xml_declaration=True)

代码说明

  1. 模块导入:使用Python标准库xml.etree.ElementTree处理XML,无需额外安装依赖。
  2. XML解析:ET.parse()读取目标XML文件,getroot()获取根节点<MCOO>。
  3. 节点遍历匹配:遍历根节点下的所有子节点,判断节点标签名是否在kk列表中。
  4. 属性修改:通过find('Active')定位目标节点下的<Active>元素,使用set()方法修改其value属性。
  5. 文件保存:tree.write()将修改后的内容写入新文件(可替换原文件名直接覆盖,建议提前备份原文件),指定编码并保留XML声明。

可选:保留XML缩进格式

默认保存的XML会丢失缩进,若需要美观的格式化输出,可使用xml.dom.minidom辅助处理:

import xml.etree.ElementTree as ET
from xml.dom import minidom

def prettify(elem):
    # 格式化XML元素为带缩进的字符串
    rough_string = ET.tostring(elem, 'utf-8')
    reparsed = minidom.parseString(rough_string)
    return reparsed.toprettyxml(indent="    ")

# 执行上述解析、修改步骤...

# 格式化并保存
with open('MC_modified.xml', 'w', encoding='UTF-8') as f:
    f.write(prettify(root))

内容的提问来源于stack exchange,提问作者Divyansh Kumar Singh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 15:14:56