Итерация при разборе xml

Разбираю (читаю, парсю) xml-файл, используя метод root.iter() в цикле for. Есть возможность в цикле по условию (if field.tag == 'inn') перейти к следующему тэгу?

В идеале мне нужно следующее: За тэгом inn может идти тэг account. И мне надо если тэг account есть, значение тэга inn выводить в файл. Если следующий тэг не account - не выводить.


Ответы (2 шт):

Автор решения: ProstoAndrey

Так как никто не отреагировал, решил вопрос сам и несколько иначе. В xml всегда последовательность тэгов такая - inn,account,orgName. Если account отсутствует - выводить в файл-отчёт inn и orgName

import xml.etree.ElementTree as ET, os
file = open("D:/Python/Files/test00.txt", "w")
inn = ''

for event, elem in ET.iterparse("D:/Python/Files/uslugi.xml"):
    if elem.tag == 'inn':
        inn = elem.text
    if elem.tag == 'account':
        inn = ''
    if elem.tag != 'inn' and elem.tag != 'account' and inn != '':
            if elem.tag == 'orgName':
                file.write(inn + '  ' + elem.text + '\n')
                inn = ''
file.close()
→ Ссылка
Автор решения: ProstoAndrey

Спасибо! На самом деле учитывая чёткую посл-ность тэгов код даже избыточен, достаточно так:

for event, elem in ET.iterparse("D:/Python/Files/uslugi.xml"):
    if elem.tag == 'inn':
        inn = elem.text
    if elem.tag == 'account':
        inn = ''
    if elem.tag == 'orgName' and inn != '':
        file.write(inn + '  ' + elem.text + '\n')
        inn = ''
file.close()
→ Ссылка