2015-06-10 99 views
1

Я пытаюсь разобрать список случаев, которые возвращаются из API Fogbugz.Как анализировать XML-файл с несколькими неспецифическими элементами

Текущий код:

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, не обращая внимания на двух других. Как я могу изменить свой оператор печати, чтобы вернуть все три номера случая?

ответ

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')]