Python怎么更新XML文件中的某个值

畫卷琴夢
发布: 2025-12-15 14:29:12
原创
199人浏览过
最常用、最稳妥的方式是使用内置的 xml.etree.ElementTree(ET):先用 ET.parse() 加载,再用 find()/findall() 定位元素,通过 .text 或 .set() 修改内容或属性,最后用 .write() 保存并指定 encoding="utf-8" 和 xml_declaration=True。

python怎么更新xml文件中的某个值

用 Python 更新 XML 文件中的某个值,最常用、最稳妥的方式是使用内置的 xml.etree.ElementTree(简称 ET)。它轻量、无需额外安装,适合大多数结构清晰的 XML 场景。

定位并修改指定元素的文本内容

适用于你想改某个标签内部的文本,比如把 <name>Alice</name> 改成 <name>Bob</name>

  • ET.parse() 加载 XML 文件
  • .find().findall() 找到目标元素(支持 XPath 简写,如 "user/name"
  • 直接赋值给 .text 属性即可修改
  • 调用 .write() 保存回文件(注意设置 encoding="utf-8"xml_declaration=True 保持格式)

示例:

import xml.etree.ElementTree as ET
<p>tree = ET.parse("config.xml")
root = tree.getroot()</p><h1>找到第一个 <version> 元素并更新其文本</h1><p>version_elem = root.find("version")
if version_elem is not None:
version_elem.text = "2.5.1"</p><p>tree.write("config.xml", encoding="utf-8", xml_declaration=True)
登录后复制

修改元素的属性值

如果要改的是属性,比如把 <server port="8080"></server> 改成 port="9000",用 .set() 方法:

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

Docky AI
Docky AI

多合一AI浏览器助手,解答问题、绘制图片、阅读文档、强化搜索结果、辅助创作

Docky AI 100
查看详情 Docky AI
  • elem.set("port", "9000") —— 直接更新或新增属性
  • elem.attrib["port"] = "9000" 也行,但 .set() 更推荐(会自动处理命名空间等细节)

按条件查找并更新(比如 ID 或 name 匹配)

当 XML 有多个同类元素,需根据属性筛选时,可用 XPath 表达式:

  • root.find('.//user[@id="102"]/email') → 找 id="102" 的 user 下的 email 元素
  • root.findall('item[@category="book"]') → 找所有 category="book" 的 item
  • 找到后仍用 .text.set() 修改

注意编码和格式细节

直接 write 可能导致缩进丢失或中文乱码

  • 务必加 encoding="utf-8",否则 Windows 上容易出问题
  • xml_declaration=True 保证开头有 <?xml version='1.0' encoding='utf-8'?>
  • 如需保留原始缩进/换行,ET 本身不自动美化;可配合 xml.dom.minidom 重排(稍重,但格式好看)

基本上就这些。简单更新不用装第三方库,ET 足够可靠。复杂嵌套或带命名空间的 XML 再考虑 lxml。

以上就是Python怎么更新XML文件中的某个值的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号