我的xml看起来像这样:
<fiscalYear start="2012-01-01" end="2012-12-31">2012
<startingBalance account="1220" balance="3453871"/>
查看图片了解更多信息
现在我想查找ex帐户“1220”是否具有2012财年的起始平衡。问题是我在xml和属性中有几个financialYears “startingBalance”我没有一年可以寻找。所以在某种程度上我必须同时查看“fiscalYear”和“startingBalance”,但我不知道如何使用ElementTree。
我试过这样做:
fiscalYear = xmltree.iter('fiscalYear')
startingBalance = 0
for i in fiscalYear:
if "startingBalance" in i.attrib:
print("found something")
if i.attrib['account'] == accountNr:
startingBalance = i.attrib['balance']
else:
print("No startingBalance found for account:", accountNr,"year:",year )
else:
print("No startingBalance found for year:",year )
但它打印出“没有找到年度起始平衡”5次(xml中有5个fiscalyears)
有人知道如何解决它......? THX
答案 0 :(得分:1)
如果我正在读你的xml,那么startingBalance不是一个属性,而是一个标签。将您的if语句更改为
if "startingBalance" in i.tag:
并查看是否有帮助。
我用我在这里的一些xml测试了你的代码,另一个问题是你的代码没有到达fiscalYear的子元素。您必须添加另一行迭代子元素。像这样:
for i in fiscalYear:
for subele in i:
if "startingBalance" in subele.tag:
print("found something")
if subele.attrib['account'] == accountNr:
startingBalance = subele.attrib['balance']
#etc, etc