Разбор XML данных с ElementTree (НЕТ или нет данных) - PullRequest
0 голосов
/ 05 апреля 2020

Я застрял с разбором XML данных из URL (API). Я получаю данные из API и, если сделать print(bookings_data), я получаю все данные из файла XML. Кроме того, я могу также получить результаты тегов, но однажды, когда я пытаюсь получить данные в текстовом формате, я ничего не получаю или ничего не получаю.

Вот мой код:

import requests
import xml.etree.ElementTree as ET

url = 'http://vatbook.euroutepro.com/xml2.php?fir=LQSB'
response = requests.get(url)
bookings_data = response.text
root = ET.fromstring(bookings_data)

for atcs in root.iter('booking'):
   for callsign_tag in atcs.find("callsign"):
      print (callsign_tag.text)

Теперь, когда Я запускаю этот код, у меня вообще ничего не получается, и я попробовал несколько разных конфигураций из findall, get и все еще без результатов (или я получаю NONE).

Что здесь может быть не так?

Вот URL файла XML: http://vatbook.euroutepro.com/xml2.php?fir=LQSB (В этом URL вы можете использовать XML или XML2, я получаю те же данные)

1 Ответ

0 голосов
/ 05 апреля 2020

Согласно документам на https://docs.python.org/2/library/xml.etree.elementtree.html#finding -интересные элементы , Element.find возвращает первого потомка с определенным тегом. Другими словами, он возвращает элемент, а не итерацию, что означает, что вы не можете использовать для l oop доступ к нему.

for atcs in root.iter('booking'):
    print (atcs.find('callsign').text)
...