下面我有一个简单的 XML 结构
<T1>
<T2>
<override select="A,B,C">
<B>Hello</B>
</override>
<override select="A">
<A>Hello</A>
</override>
</T2>
</T1>
在此示例中,我尝试删除任何override
.
假设我有以下设置代码:
import xml.etree.ElmenentTree as ET
tree = ET.parse(file)
root = tree.getroot()
如果我执行以下操作,则仍然存在:
for parent in root.iter():
for child in parent:
if child.tag == 'override':
parent.remove(child)
但是,如果我指定list(parent)
而不是 just in parent
,那么它可以工作:
for parent in root.iter():
for child in list(parent):
if child.tag == 'override':
parent.remove(child)
为什么会这样?如果我child
在删除之前打印出来,我可以清楚地看到相同的元素以两种方式打印。那么这里到底发生了什么?