Python:xPath在ElementTree中不可用

Python:xPath在ElementTree中不可用,python,xml-parsing,python-2.7,elementtree,iterparse,Python,Xml Parsing,Python 2.7,Elementtree,Iterparse,我试图使用ElementTree的iterparse()解析iTunes播放列表,但出现以下错误: AttributeError: 'Element' object has no attribute 'xpath' 代码如下: import xml.etree.ElementTree as ET context = ET.iterparse(file,events=("start", "end")) # turn it into an iterator context = it

我试图使用
ElementTree
iterparse()
解析iTunes播放列表,但出现以下错误:

AttributeError: 'Element' object has no attribute 'xpath'
代码如下:

import xml.etree.ElementTree as ET
context = ET.iterparse(file,events=("start", "end"))
    # turn it into an iterator
    context = iter(context)
    # get the root element
    event, root = context.next()
    for event, elem in context:
        z = elem.xpath(".//key")
        elem.clear()
        root.clear()
    print z
我做错了什么?文件太大,所以我必须使用
iterparse()

用于它的类和方法(没有
xpath
方法:这就是为什么会出现错误)

此外,如果对元素调用
clear()
,以节省已用内存,则只需在处理完该元素及其所有子元素后执行

因此,您需要将代码更改为类似以下内容:

for event, elem in context:
    for child in elem.findall(".//key"):
        # process child
    elem.clear()
    root.clear()

尝试
elem.findall(“.//key”)
而不是
elem.xpath(“.//key”)
elem.clear()
,除其他外,删除所有子元素。您是否尝试过删除
elem.clear()
root.clear()
并将
print z
放入
for
循环中?好的,当我对clear()代码进行注释时,它会在循环中返回。你有什么建议?为什么需要
clear()
方法调用?我在这里读到:它是针对lxml的。我认为这也将是内置库中elementTree的问题。在标题下勾选“增量部分感谢您的慷慨帮助”。