<p>我建议更喜欢较新的<code>xml.etree.ElementTree</code>标准模块,而不是<code>xml.dom.minidom</code>。请尝试以下操作:</p>
<pre><code>import xml.etree.ElementTree as ET
tree = ET.parse('test.xml')
for element in tree.getiterator('item'):
print element.attrib
</code></pre>
<p>它印出来了</p>
<pre><code>{'image': 'a', 'name': 'item1'}
{'image': 'b', 'name': 'item2'}
{'image': 'c', 'name': 'item3'}
{'image': 'd', 'name': 'item4'}
</code></pre>
<p>这里<code>.getiterator('item')</code>遍历树的所有元素并返回名为<code>item</code>的元素。每个元素的<code>.attrib</code>是元素属性的字典——这正是您想要的。</p>
<p>实际上,元素的行为就像子元素的列表。上面的<em>属性是dictionary</em>中的项,与DOM方法相比,ElemenTree更适合Python。</p>
<p>在上面的示例中添加以下代码:</p>
<pre><code>print '----------------'
root = tree.getroot()
ET.dump(root)
print '----------------'
print root.tag
print root.attrib
for elem in root:
print elem.tag, elem.attrib
</code></pre>
<p>它打印:</p>
<pre><code>----------------
<main>
<item image="a" name="item1" />
<item image="b" name="item2" />
<item image="c" name="item3" />
<item image="d" name="item4" />
</main>
----------------
main
{}
item {'image': 'a', 'name': 'item1'}
item {'image': 'b', 'name': 'item2'}
item {'image': 'c', 'name': 'item3'}
item {'image': 'd', 'name': 'item4'}
</code></pre>