Страницы

Поиск по вопросам

понедельник, 13 мая 2019 г.

Как распарсить нетривиальный XML на питоне?

${host} ${port} 220 220 localhost SMTP Server (JAMES SMTP Server 2.3.2)(MSK) name 250 250 localhost Hello name (localhost [127.0.0.1]) Test "g_helo_with_C_OrJoin273_" in keyword-driven format. ${host} ${port} 220 220 localhost SMTP Server (JAMES SMTP Server 2.3.2) 14:50:18 +0400 (MSK) name 255 250 localhost Hello name (localhost [127.0.0.1]) Test "g_helo_with_C_OrJoin273_helo_resp_2_2_trace0001_L" in keyword-driven format.
Как распарсить так, чтоб в выводе было: suite source и соответствующие ему kw name, arguments, status? Проблема в том, что я не знаю как выводить список suite source, а в нем еще список kw name, arguments, status


Ответ

Вам поможет minidom
from xml.dom import minidom
om = minidom.parseString(x) root = om.getElementsByTagName('robot')[0]
# Далее что-то, к примеру:
def walk(x, d=0): print(' ' * d + str(x)) if x.attributes is not None: for i, j in x.attributes.items(): print(' ' * d + ' | ' + i + ': ' + j) for i in x.childNodes: walk(i, d+1)
walk(root)

Комментариев нет:

Отправить комментарий