fpg*_*ost 6 python xml elementtree
我有一个表格的XML文件:
<PlayersList>
<player>
<username>Someuser</username>
<network>Somenetwork</network>
<country>France</country>
<blocked>False</blocked>
<resetDate>NA</resetDate>
<Stat1>1665</Stat1>
<Stat2>-5.47</Stat2>
<Stat3>15.07</Stat3>
<Stat4>-16.8</Stat4>
<Stat5>-9104.47</Stat5>
<Stat6>25087.75</Stat6>
<Stat7>17965.79</Stat7>
<Stat8>2011-04-17 03:33</Stat8>
<Stat9>28</Stat9>
<Stat10>5.9</Stat10>
<Stat11>283</Stat11>
<Stat12>-33.6</Stat12>
<Stat13>22.3</Stat13>
<Stat14>460.4</Stat14>
<Stat15>57.5</Stat15>
</player>
.
.
</PlayersList>
Run Code Online (Sandbox Code Playgroud)
我正在尝试删除播放器的所有子节点.我选择了我想要的给定玩家元素
e= root.findall('player')[2]
Run Code Online (Sandbox Code Playgroud)
然后尝试删除所有儿童:
for child in e:
e.remove(child)
Run Code Online (Sandbox Code Playgroud)
然而,每次运行此节点时,只删除少数子节点,而不是全部!为什么?
我可以列出所有子标签及其文本没有问题
for child in e:
print child.tag+':'+child.text
Run Code Online (Sandbox Code Playgroud)
ise*_*dev 12
这是因为您正在修改正在迭代的元素.您可以将子元素存储在临时列表中,然后迭代它:
for child in list(e):
e.remove(child)
Run Code Online (Sandbox Code Playgroud)
这将删除所有孩子.