YXD*_*YXD 20 python xml elementtree
我有一个包含从http请求返回的XML数据的字符串.
我正在使用ElementTree来解析数据,然后我想以递归方式搜索一个元素.
根据这个问题,我只能递归搜索result.findall()if result是类型ElementTree而不是类型Element.
现在xml.etree.ElementTree.fromstring(),用于解析字符串,返回一个Element对象,而xml.etree.ElementTree.parse()用于解析文件,返回一个ElementTree对象.
我的问题是:我如何解析字符串并获取ElementTree实例?(没有像写临时文件那样疯狂)
jco*_*ado 28
当你使用ElementTree.fromstring()你所获得的东西时,它基本上就是树的根,所以如果你创建一个这样的新树,ElementTree.ElementTree(root)你就会得到你正在寻找的.
所以,为了更清楚:
from xml.etree import ElementTree
tree = ElementTree.ElementTree(ElementTree.fromstring(<your_xml_string>))
Run Code Online (Sandbox Code Playgroud)
要么:
from xml.etree.ElementTree import fromstring, ElementTree
tree = ElementTree(fromstring(<your_xml_string>))
Run Code Online (Sandbox Code Playgroud)
将您的字符串转换为类似文件的对象并使用ElementTree.parse:
from xml.etree import ElementTree
from cStringIO import StringIO
tree = ElementTree.parse(StringIO(string))
Run Code Online (Sandbox Code Playgroud)