Python ElementTree怎么修改和保存XML文件

用xml.etree.ElementTree修改并保存XML需三步:解析(ET.parse)、内存中增删改查、write()保存;务必指定encoding=”utf-8″、xml_declaration=True,Python 3.9+可调用ET.indent()美化缩进。

python elementtree怎么修改和保存xml文件

用 Python 的 xml.etree.ElementTree 修改并保存 XML 文件很简单,核心是:先解析(ET.parse()),再在内存中修改元素或属性,最后写回文件(tree.write())。注意编码和格式细节,否则容易出乱码或缩进丢失。

加载并修改 XML 内容

ET.parse() 读取文件生成 ElementTree 对象,通过 .getroot() 获取根节点,之后就能增删改查:

  • 修改文本:elem.text = "新内容"
  • 修改属性:elem.set("name", "value") 或直接 elem.attrib["name"] = "value"
  • 添加子元素:ET.SubElement(parent, "tag", attrib={...})
  • 删除子元素:parent.remove(child)
  • 查找元素:root.find(".//item")root.findall("book")

保存时注意编码和换行

tree.write() 默认用 ASCII 编码且不带 XML 声明,中文会报错,也不易读。推荐这样保存:

  • 指定 encoding="utf-8"xml_declaration=True
  • method="xml"(默认就是 xml,但显式写更稳妥)
  • 如需缩进(Python 3.9+),可调用 ET.indent(tree) 再保存

示例:
ET.indent(tree) # 可选,美化输出
tree.write("output.xml", encoding="utf-8", xml_declaration=True)

神卷标书

神卷标书

神卷标书,专注于AI智能标书制作、管理与咨询服务,提供高效、专业的招投标解决方案。支持一站式标书生成、模板下载,助力企业轻松投标,提升中标率。

下载

立即学习Python免费学习笔记(深入)”;

完整修改保存示例

比如把 config.xml 中所有 的值改成 8080,并保存回原文件:

import xml.etree.ElementTree as ET
tree = ET.parse("config.xml")
root = tree.getroot()
for port in root.iter("port"):
  port.text = "8080"
ET.indent(tree)
tree.write("config.xml", encoding="utf-8", xml_declaration=True)

基本上就这些。关键不是语法多难,而是别忘了设编码、加声明、必要时缩进——不然文件可能打不开或显示异常。

https://www.php.cn/faq/1963956.html

发表回复

Your email address will not be published. Required fields are marked *