我有一个包含从http请求返回的XML数据的字符串。
我使用ElementTree解析数据,然后递归地搜索元素。
根据这个问题,只有在result类型为ElementTree而不是Element类型的情况下,才能使用ElementTree进行递归搜索。
现在,用于解析字符串的xml.etree.ElementTree.fromstring()返回一个Element对象,而用于解析文件的xml.etree.ElementTree.parse()返回一个ElementTree对象。
那么,我的问题是:如何解析字符串并获得一个ElementTree 实例?(不像写入临时文件那样疯狂)
发布于 2011-12-20 18:41:03
当您使用ElementTree.fromstring()时,您要返回的基本上是树的根,所以如果您创建一个像这个ElementTree.ElementTree(root)这样的新树,您将得到您想要的。
因此,为了更清楚地:
from xml.etree import ElementTree
tree = ElementTree.ElementTree(ElementTree.fromstring(<your_xml_string>))或者:
from xml.etree.ElementTree import fromstring, ElementTree
tree = ElementTree(fromstring(<your_xml_string>))发布于 2011-12-20 21:49:09
将字符串转换为类似文件的对象,并使用ElementTree.parse。
from xml.etree import ElementTree
from cStringIO import StringIO
tree = ElementTree.parse(StringIO(string))https://stackoverflow.com/questions/8580234
复制相似问题