首页 > 解决方案 > xml.etree.ElementTree.Element' 对象没有属性 'write'

问题描述

我想读取一个 XML 字符串,对其进行编辑并将其保存为 XML 文件。

但是,当我这样做时,我在标题中得到了提到的错误.write()

我发现当你使用它读取一个 XML 字符串时,ElementTree.fromstring(string)它会创建一个ElementTree.Element而不是一个ElementTree本身。Element 没有 write 方法,但 ElementTree 有。

如何将元素写入 XML 文件?或者如何创建一个 ElementTree 并将我的元素添加到其中然后使用该.write方法?

标签: pythonxmlelementtree

解决方案


我发现当你使用它读取一个 xml 字符串时,ElementTree.fromstring(string)它实际上会创建一个ElementTree.Element而不是一个ElementTree本身。

是的,您得到了顶级元素(也称为“文档元素”)。

元素没有write方法,但有ElementTree

构造ElementTree函数签名是这样的:

class xml.etree.ElementTree.ElementTree(element=None, file=None)

因此,它非常简单:

import xml.etree.ElementTree as ET

doc = ET.fromstring("<test>test öäü</test>")

tree = ET.ElementTree(doc)
tree.write("test.xml", encoding="utf-8")

编写 XML 文件时始终应指定编码。大多数时候,UTF-8 是最佳选择。


推荐阅读