擅长:python、mysql、java
<p>在迭代元素时,您正在将元素移出<code>childNodes</code>。这改变了<code>childNodes</code>列表:</p>
<pre><code>>>> lst = [1, 2, 3]
>>> for i, elem in enumerate(lst):
... print i, elem
... del lst[i]
...
0 1
1 3
</code></pre>
<p>您必须迭代列表的<em>副本</em>;这里我使用<code>[:]</code>切片符号创建列表的副本:</p>
<pre><code>for elementNode in docToInclude.documentElement.childNodes[:]:
print ("node name : " , elementNode.nodeName)
node.parentNode.insertBefore(elementNode, insertPosition)
</code></pre>
<p>不过,还是帮你自己一个大忙,改用<a href="http://docs.python.org/library/xml.etree.elementtree.html" rel="nofollow">ElementTree API</a>;该API远比XML DOM API更具pythononic性,使用起来也更容易:</p>
<pre><code>from xml.etree import ElementTree as ET
etree = ET.fromstring(data)
for element in etree.findall('messageList'):
print element
</code></pre>