我想知道使用python 3.6通过以下方法获取根句柄是否有效。 (它似乎适用于带有xml.etree.cElementTree的2.7)。使用的数据文件位于https://docs.python.org/3.4/library/xml.etree.elementtree.html#parsing-xml
# python 3.6
import xml.etree.ElementTree as ET
iterator = ET.iterparse(filename) # see my own response !
_, root = next(iterator)
print('ROOT:', root.tag) # prints 'rank', 1st tag, not 'data', root !!
for event, elem in iterator:
print(elem.tag, elem.attrib, elem.text) # prints 'year', 2nd element
# process..
elem.clear() # works, but empty tags accumulate ?
root.clear() # doesn't clear
没有root.clear()的代码可以工作,但是内存不断上升(尽管不是很快)。我问这个问题是因为我看到使用它的旧代码,看到最新python的更新会很高兴,以免出错。
由于
答案 0 :(得分:0)
这是我的错。它适用于,
iterator = ET.iterparse(filename, events=("start", "end"))
然后处理“end”。