来自字符串源的Python xml ElementTree?

时间:2009-03-15 01:24:19

标签: python xml

ElementTree.parse从文件读取,如果我已经在字符串中包含XML数据,我该如何使用它?

也许我在这里遗漏了一些东西,但必须有一种方法可以使用ElementTree而无需将字符串写入文件并再次阅读。

xml.etree.elementtree

5 个答案:

答案 0 :(得分:168)

您可以将文本解析为字符串,从而创建Element,并使用该元素创建ElementTree。

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

我刚刚遇到过这个问题,文档虽然完整,但对于parse()fromstring()方法之间的使用差异并不是非常简单。

答案 1 :(得分:69)

如果您使用xml.etree.ElementTree.parse从文件中解析,则可以使用xml.etree.ElementTree.fromstring从文本中解析。

请参阅xml.etree.ElementTree

答案 2 :(得分:14)

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

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

答案 3 :(得分:2)

它位于您关联的页面上。使用fromstring。

答案 4 :(得分:0)

io.StringIO是将XML放入xml.etree.ElementTree的另一种选择:

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

但是,它不会影响假定在tree中的XML声明(尽管ElementTree.write()需要XML声明)。参见How to write XML declaration using xml.etree.ElementTree