您正在遍历活动树:
for elem2 in tree.iter(tag='second'):
然后在迭代时进行更改。该迭代的“计数器”将不被告知更改的一些元素,所以元素0前瞻性和上元件数1移除元素,迭代器然后移动,但什么时候 是
单元号1现在是单元号0。
首先捕获所有元素的列表,然后在其上循环:
for elem2 in tree.findall('.//second'):
.findall()返回结果列表,该列表在您更改树时不会更新。
现在迭代不会跳过最后一个元素:
>>> print ET.tostring(tree)<zero> <First> <second> <third-num>1</third-num> <third-def>object001</third-def> <third-len>458</third-len> </second> </First></zero>
这种现象不仅限于ElementTree树;请参阅循环“忘记”以删除一些项目
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)