Python для парс XML, чтобы получить значение - PullRequest
0 голосов
/ 11 июля 2019

У меня есть xml-ответ от одной из моих систем, где я пытаюсь получить значение, используя код Python.Нужны эксперты по подсвечиванию моей ошибки.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><ns3:loginResponse xmlns:ns2="http://ws.core.product.xxxxx.com/groupService/" xmlns:ns3="http://ws.core.product.xxxxx.com/loginService/" xmlns:ns4="http://ws.core.product.xxxxx.com/userService/"><ns3:return>YWeVDwuZwHdxxxxxxxxxxx_GqLtkNTE.</ns3:return></ns3:loginResponse>

Я использую приведенный ниже код и мне не повезло в получении значения - YWeVDwuZwHdxxxxxxxxxxx_GqLtkNTE.Я не использовал анализ XML с пространством имен.response.text имеет вышеуказанный ответ xml.

responsetree = ET.ElementTree(ET.fromstring(response.text))
   responseroot = responsetree.getroot()
   for a in root.iter('return'):
       print(a.attrib)

Ответы [ 2 ]

0 голосов
/ 12 июля 2019

Ссылка из другого ответа помогла понять концепции.

Как только я понял структуру xml, все просто.Просто добавив вывод, он может помочь кому-то в будущем для быстрого ознакомления.

responsetree = ET.ElementTree(ET.fromstring(response.text)) responseroot = responsetree.getroot() root[0].text

Простота понимания.Вам может понадобиться найти len(root) и / или выполнить итерацию цикла с условием, чтобы получить подходящее значение.Вы также можете использовать findall, find вместе с, чтобы получить интересующий предмет.

0 голосов
/ 12 июля 2019

YWeVDwuZwHdxxxxxxxxxxx_GqLtkNTE не входит в attrib.Это элемент text

. Атрибут в этом случае - пустой дикт

...