【发布时间】:2017-11-14 04:39:57
【问题描述】:
对 Python 非常陌生,我正在构建一个项目来学习 Python。该项目涉及 XML 解析,为此我使用了 ElementTree。
这是我目前拥有的代码:
import xml.etree.ElementTree as etree
tree = etree.parse('ar.xml')
root = tree.getroot()
ns = {'nbb': 'http://www.nbb.be/be/fr/pfs/ci/2017-04-01'}
for ass in tree.findall("nbb:Assets[@contextRef='CurrentInstant']", ns):
assets = ass.text
for pay in tree.findall("nbb:AmountsPayable[@contextRef='CurrentInstant']", ns):
payables = pay.text
for prov in tree.findall("nbb:ProvisionsDeferredTaxes[@contextRef='CurrentInstant']", ns):
provisions = prov.text
for cap in tree.findall("nbb:IssuedCapital[@contextRef='CurrentInstant']", ns):
capital = cap.text
print assets
print payables
print provisions
print capital
对于大多数 XML 文件,这完全可以正常工作。
但是,我想为其使用代码的某些 XML 文件没有元素 ("nbb:ProvisionsDeferredTaxes[@contextRef='CurrentInstant']", ns)。在这些情况下,会出现以下错误:未定义名称“provisions”。
我需要使用变量来进一步计算代码(例如:资产 - 规定),并且我需要在没有 (" nbb:ProvisionsDeferredTaxes[@contextRef='CurrentInstant']", ns) 元素。
我应该如何进行?
非常感谢!
【问题讨论】:
-
使用标题的空间来包含问题的基本元素比实现语言更重要——标签用于显示和按语言过滤,除非在标题中包含自然流动的语言(并且很容易适应)。见discussion on meta。
标签: python xml elementtree