<p>用你的例子:</p>
<pre><code>import xmltodict
with open('artikelen.xml') as fd:
doc = xmltodict.parse(fd.read())
</code></pre>
<p>如果您检查<code>doc</code>,您将看到它是一个<code>OrderedDict</code>,按标记排序:</p>
<pre><code>>>> doc
OrderedDict([('artikelen',
OrderedDict([('artikel',
[OrderedDict([('@nummer', '121'),
('code', 'ABC123'),
('naam', 'Highlight pen'),
('voorraad', '231'),
('prijs', '0.56')]),
OrderedDict([('@nummer', '123'),
('code', 'PQR678'),
('naam', 'Nietmachine'),
('voorraad', '587'),
('prijs', '9.99')])])]))])
</code></pre>
<p>根节点被称为<code>artikelen</code>,并且有一个子节点<code>artikel</code>,它是<code>OrderedDict</code>对象的列表,因此如果您希望为每一篇文章都使用<code>code</code>,您可以:</p>
<pre><code>codes = []
for artikel in doc['artikelen']['artikel']:
codes.append(artikel['code'])
# >>> codes
# ['ABC123', 'PQR678']
</code></pre>
<p>如果您特别希望仅当<code>nummer</code>是<code>121</code>时才使用<code>code</code>,则可以执行以下操作:</p>
<pre><code>code = None
for artikel in doc['artikelen']['artikel']:
if artikel['@nummer'] == '121':
code = artikel['code']
break
</code></pre>
<p>也就是说,如果您正在解析XML文档并希望搜索这样的特定值,我将考虑使用<a href="https://docs.python.org/3/library/xml.etree.elementtree.html#elementtree-xpath" rel="noreferrer">XPath expressions</a>,这是由<code>ElementTree</code>支持的。</p>