Vol*_*il3 5 python elementtree xml-parsing python-2.7 iterparse
我尝试使用iterparse()of解析 iTunes 播放列表ElementTree,但出现以下错误:
AttributeError: 'Element' object has no attribute 'xpath'
Run Code Online (Sandbox Code Playgroud)
代码如下:
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
Run Code Online (Sandbox Code Playgroud)
我做错了什么?文件太大了,无论如何我都必须使用iterparse()。
xml.etree.ElementTree 对其Element类find和findall方法的XPath 表达式提供有限的支持findtext(没有xpath方法:这就是您收到错误的原因)。
另外,如果您调用某个元素来节省已用内存,则只需在处理完该元素及其所有子元素后才clear()需要执行此操作。
因此,您需要将代码更改为类似于以下内容:
for event, elem in context:
for child in elem.findall(".//key"):
# process child
elem.clear()
root.clear()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8821 次 |
| 最近记录: |