如何使用多个非特定元素解析XML文件

时间:2015-06-10 23:46:03

标签: python xml beautifulsoup fogbugz fogbugz-api

我正在尝试解析从Fogbugz API返回的案例列表。

当前代码:

from fogbugz import FogBugz
from datetime import datetime, timedelta
import fbSettings

fb = FogBugz(fbSettings.URL, fbSettings.TOKEN)

resp = fb.search(q='project:"Python Testing"',cols='ixBug')

print resp.cases.case.ixbug.string

问题是XML有多个案例返回的情况。例如,我的测试搜索了以下内容:

<response>
<cases count="3">
 <case ixbug="133529" operations="edit,assign,resolve,email,remind">
  <ixbug>
   133529
  </ixbug>
 </case>
 <case ixbug="133528" operations="edit,assign,resolve,email,remind">
  <ixbug>
   133528
  </ixbug>
 </case>
 <case ixbug="133527" operations="edit,assign,resolve,email,remind">
  <ixbug>
   133527
  </ixbug>
 </case>
</cases>
</response>

但是

print resp.cases.case.ixbug.string

仅返回XML中的第一个案例编号,忽略其他两个。如何修改print语句以返回所有三个案例编号?

1 个答案:

答案 0 :(得分:0)

来自docs

from fogbugz import FogBugz
import fbSettings

fb = FogBugz(fbSettings.URL, fbSettings.TOKEN)

resp = fb.search(q='project:"Python Testing"',cols='ixBug')

# printing
for case in resp.cases.findAll('case'):
    print case.ixbug.string

# store in a list
l = [case.ixbug.string for case in resp.cases.findAll('case')]