Python中如何将解析后的Element类型XML变量myxml导出为XML文件
XML根对象导出本地文件实现方案
核心问题定位:你通过
fromstring方法拿到的myxml是XML根节点(Element类型),本身不具备文件写出能力,直接调用写出方法会触发属性报错,需要先完成对象封装再执行导出。
具体实现步骤
- 补充导入依赖
原有导入语句缺少文件写出所需的类,需要补全导入:from xml.etree.ElementTree import XML, fromstring, ElementTree, indent - 封装可操作文件的Tree对象
把已有的根节点myxml传入ElementTree构造器,拿到具备文件操作能力的Tree实例:# 原有XML字符串转节点的逻辑保持不变 myxml = fromstring(xmlcontents) # 封装为标准ElementTree对象 tree = ElementTree(myxml) - 导出为本地XML文件
调用Tree实例的write方法,搭配常用参数避免中文乱码、缺失XML声明的问题:tree.write( file="result.xml", # 替换为你实际需要的存储路径 encoding="utf-8", xml_declaration=True # 自动在文件头生成标准XML声明 ) - 可选优化:格式化文件缩进
如果使用Python3.9及以上版本,可以在写出前给节点增加标准缩进,避免导出的XML全部挤在单行不方便阅读:# 给所有节点增加2个空格的缩进 indent(myxml, space=" ", level=0)
常见注意点
- 禁止直接对
myxml根节点对象调用write方法,该方法仅存在于封装后的ElementTree实例上 - 指定编码为
utf-8时,尽量同步把xml_declaration设为True,避免读取文件时出现编码识别异常
内容的提问来源于stack exchange,提问作者moham
相关产品推荐
相关产品推荐

