0

在此处输入图像描述我的 xml 看起来像这样:

<fiscalYear start="2012-01-01" end="2012-12-31">2012

<startingBalance account="1220" balance="3453871"/> 查看图片了解更多信息

现在我想查找前帐户“1220”是否具有 2012 年财政年的起始余额。问题是我在 xml 中有几个财政年,而在属性“起始余额”中我没有要查找的年份。因此,在某种程度上,我必须同时查看“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 个会计年度)

有人知道如何解决它...?谢谢

4

1 回答 1

1

如果我正确地阅读了您的 xml,那么 startingBalance 不是属性,而是标签。将您的 if 语句更改为

if "startingBalance" in i.tag:

看看这是否没有帮助。

我用我在这里的一些 xml 测试了你的代码,另一个问题是你的代码没有到达会计年度的子元素。您必须添加另一行迭代子元素。像这样的东西:

   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
于 2012-11-21T15:24:20.427 回答