来自字符串源的 Python xml ElementTree?

Parse 从一个文件中读取数据,如果我已经将 XML 数据放在一个字符串中,那么如何使用它呢?

也许我在这里遗漏了一些东西,但是一定有一种方法可以使用 ElementTree,而不需要将字符串写入文件并再次读取它。

元素树

203839 次浏览

如果使用 xml.etree.ElementTree.parse解析文件,那么可以使用 xml.etree.ElementTree.fromstring获取文档的根 Element。通常你并不真的需要一个 ElementTree

参见 元素树

你需要 xml.etree.ElementTree.fromstring(text)

from xml.etree.ElementTree import XML, fromstring
myxml = fromstring(text)

您可以将文本解析为字符串,这将创建一个 Element,并使用该 Element 创建一个 ElementTree。

import xml.etree.ElementTree as ET
tree = ET.ElementTree(ET.fromstring(xmlstring))

我只是偶然发现了这个问题,虽然文档很完整,但是关于 parse()fromstring()方法之间的用法差异的文档并不是很直接。

StringIO 是将 XML 导入 元素树的另一种选择:

import io
f = io.StringIO(xmlstring)
tree = ET.parse(f)
root = tree.getroot()

但是,它不会影响人们假设在 tree中的 XML 声明(尽管这是 返回文章页面 ElementTree.write ()译者:所需要的)。见 如何使用 XML.etre.ElementTree 编写 XML 声明