相关疑难解决方法(0)

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

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

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

根据这个问题,我只能递归搜索result.findall()if result是类型ElementTree而不是类型Element.

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

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

python xml elementtree

20
推荐指数
2
解决办法
2万
查看次数

Python ElementTree:ElementTree与root元素

我对Python ElementTree API中的一些设计决策感到有点困惑 - 它们似乎有点武断,所以我想澄清一下这些决定是否有一些逻辑,或者它们是否只是更多或者不那么特别.

因此,通常有两种方法可能需要生成ElementTree- 一种是通过某种源流,如文件或其他I/O流.这是通过parse()函数或ElementTree.parse()类方法实现的.

另一种方法是直接从字符串对象加载XML.这可以通过该fromstring()功能完成.

好,太棒了.现在,我认为这些函数在它们返回的内容方面基本相同 - 它们之间的差异基本上是输入源(一个采用文件或流对象,另一个采用普通字符串.)除了parse()函数返回一个ElementTree对象的某种原因,但该fromstring()函数返回一个Element对象.区别在于Element对象是XML树的元素,而ElementTree对象是根元素周围的"包装器",它提供了一些额外的功能.您始终可以ElementTree通过调用从对象获取根元素getroot().

不过,我很困惑为什么我们有这种区别.为什么fromstring()直接返回根元素,但parse()返回一个ElementTree对象?这种区别背后有一些逻辑吗?

python

7
推荐指数
1
解决办法
704
查看次数

标签 统计

python ×2

elementtree ×1

xml ×1