我正在尝试从xml文件轻松访问值
<;artikelen>;
<;artikel nummer=“121”>;
<;代码>;ABC123</代码>;
<;naam>;突出显示钢笔</naam>;
<;沃拉德>;231</沃拉德>;
<;prijs>;0.56</prijs>;
</artikel>;
<;artikel nummer=“123”>;
<;代码>;PQR678</代码>;
<;naam>;尼特机器</naam>;
<;沃拉德>;587</沃拉德>;
<;prijs>;9.99</prijs>;
</artikel>;
..... 等
如果我想访问值ABC123,我如何获取它
导入xmltodict
以open(’8_1.html’)作为fd:
doc=xmltodict.parse(fd.read())
打印(文件[fd][“代码])
以您的例子:
导入xmltodict
以open(’artikelen.xml’)作为fd:
doc=xmltodict.parse(fd.read())
如果检查doc,您将看到它是一个OrderedDict,按标签排序:
>&燃气轮机&燃气轮机;医生
OrderedDict([('artikelen',
OrderedDict([('artikel',
[OrderedDict([('@numer','121'),
(‘代码’、‘ABC123’),
('naam','Highlight pen'),
('voorraad','231'),
('prijs','0.56')),
OrderedDict([('@numer','123'),
(“代码”,“PQR678”),
(‘naam’、‘Nietmachine’),
('voorraad','587'),
('prijs','9.99')]]]]]]]]
根节点称为artikelen,其中有一个子节点artikel,它是OrderedDict对象的列表,因此如果您希望每个文章都有code,您可以执行以下操作:
代码=[]
对于文档['artikelen']['artikel']on artikel:
代码。追加(artikel['code']))
#>&燃气轮机&燃气轮机;代码
#['ABC123','PQR678']
如果仅当numer为121时才特别需要code,则可以执行以下操作:
code=None
对于文档['artikelen']['artikel']on artikel:
如果artikel['@nummer']=='121':
代码=artikel[“代码”]
打破
这样说,如果你解析XML文档并想搜索一个特定的值,我会考虑使用XPath表达式,这是由代码> eleTrime >支持的。