繁体   English   中英

Python ElementTree:解析字符串并获取ElementTree实例

[英]Python ElementTree: Parsing a string and getting ElementTree instance

我有一个包含从http请求返回的XML数据的字符串。

我正在使用ElementTree来解析数据,然后我想以递归方式搜索一个元素。

根据这个问题 ,如果resultElementTree类型而不是类型Element ,我只能用result.findall()递归搜索。

现在,用于解析字符串的xml.etree.ElementTree.fromstring()返回一个Element对象,而用于解析文件的 xml.etree.ElementTree.parse()返回一个ElementTree对象。

我的问题是:如何解析字符串并获取ElementTree实例? (没有像写临时文件那样疯狂)

当你使用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>))

将您的字符串转换为类似文件的对象并使用ElementTree.parse

from xml.etree import ElementTree
from cStringIO import StringIO

tree = ElementTree.parse(StringIO(string))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM