使用LXML与Python修改XML文件
使用Python和LXML修改XML文件内容
没问题,这就手把手教你用Python的LXML库完成这个XML修改需求,步骤简单明了:
1. 准备工作
首先确保你已经安装了LXML库,如果没装的话,用pip快速安装:
pip install lxml
2. 编写Python代码
接下来写代码实现修改逻辑,核心是解析XML、定位目标元素、修改内容再保存:
from lxml import etree # 1. 加载并解析目标XML文件 tree = etree.parse('definitions.xml') root = tree.getroot() # 2. 定位并修改name为"am"的property元素内容 am_prop = root.find(".//property[@name='am']") if am_prop: # 先判断元素是否存在,避免出现空指针报错 am_prop.text = "NEW_A" # 3. 定位并修改name为"24hours"的property元素内容 hours_prop = root.find(".//property[@name='24hours']") if hours_prop: hours_prop.text = "NEW_B" # 4. 保存修改后的XML文件 # 设置xml_declaration=True保留XML声明,pretty_print=True让输出格式更整洁易读 tree.write('definitions.xml', encoding='utf-8', xml_declaration=True, pretty_print=True)
代码说明
- 用
etree.parse()加载XML文件,获取整个文档树和根节点 - 通过XPath表达式
.//property[@name='xxx']精准定位到需要修改的元素,.//表示在整个文档树中递归搜索匹配的元素 - 修改元素的
text属性就能直接替换其内部的文本内容 - 保存时指定编码和格式化参数,确保输出的XML格式规范、可读性强
如果你的XML文件里有正式的命名空间声明(比如xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"),也不用担心,上面的代码依然能正常工作——我们是通过元素的属性直接定位的,不受命名空间影响。
内容的提问来源于stack exchange,提问作者Rahul
相关产品推荐
相关产品推荐

