如何用Python xml.etree.ElementTree添加XML子元素且不输出到控制台
解决方案
要解决这个问题很简单——你只需要去掉用于调试的ET.dump(),改用tree.write()把修改后的XML保存到文件即可。
原代码里的ET.dump()本来就是官方文档明确标注的仅用于调试的工具,作用是把XML结构打印到控制台,和添加子元素的核心逻辑完全无关。你之前能成功添加元素,是因为ET.SubElement()已经完成了向root节点插入子元素的操作,dump()只是额外的打印步骤而已。
修改后的完整代码
import xml.etree.ElementTree as ET # 解析目标XML文件 tree = ET.parse('myfile.XML') root = tree.getroot() # 添加新的VPN子元素(这部分逻辑完全保留) vpn = ET.SubElement(root, 'VPN', attrib={'A': 'VPN1', 'B':'0','C': '0.0001', 'D': '0', 'E': '%'}) # 将修改后的XML树写入文件(默认覆盖原文件) tree.write('myfile.XML')
额外细节说明
- 如果不想覆盖原文件,只需给
tree.write()指定新文件名即可,比如:tree.write('updated_myfile.XML') - 默认的
tree.write()输出的XML是紧凑格式(无缩进),如果需要带缩进的美观格式,标准库的xml.etree.ElementTree没有原生支持,你可以自己实现缩进逻辑,或者使用第三方库lxml(若项目允许引入)。但仅完成添加元素并保存的基础需求时,默认的write()就足够用。
内容的提问来源于stack exchange,提问作者VKlue
相关产品推荐
相关产品推荐

