ElementTree.parse方法读取文件,如果我已经有了XML数据的字符串,我该如何使用它?
也许我缺少某些东西,但肯定有一种方法可以在不将字符串写入文件并再次读取的情况下使用ElementTree。
ElementTree.parse方法读取文件,如果我已经有了XML数据的字符串,我该如何使用它?
也许我缺少某些东西,但肯定有一种方法可以在不将字符串写入文件并再次读取的情况下使用ElementTree。
import xml.etree.ElementTree as ET
tree = ET.ElementTree(ET.fromstring(xmlstring))
我刚遇到了这个问题,虽然文档很完整,但在parse()
和fromstring()
方法的使用区别上不是很直观。
xml.etree.ElementTree.parse
从文件中解析,则可以使用xml.etree.ElementTree.fromstring
获取文档的根Element
。通常情况下,您实际上并不需要一个ElementTree
。fromstring
已经给你了根。 - melMassxml.etree.ElementTree.fromstring(text)
。from xml.etree.ElementTree import XML, fromstring
myxml = fromstring(text)
ElementTree
,而是根 Element
。这个 API 是不同的,不能做所有相同的事情。 - rjurneyio.StringIO 是将 XML 导入 xml.etree.ElementTree 的另一种选择:
import io
f = io.StringIO(xmlstring)
tree = ET.parse(f)
root = tree.getroot()
tree
中的XML声明(尽管ElementTree.write()需要它)。请参阅如何使用xml.etree.ElementTree编写XML声明。
root = ET.fromstring(xmlstring)
,其等价于ET.parse('file.xml').getroot()
。详见https://docs.python.org/3.6/library/xml.etree.elementtree.html#parsing-xml。 - Anton Tarasenkolxml
。 - Louie Bafford