Я новичок в разборе XML. Этот XML файл имеет следующее дерево:
FHRSEstablishment
|--> Header
| |--> ...
|--> EstablishmentCollection
| |--> EstablishmentDetail
| | |-->...
| |--> Scores
| | |-->...
|--> EstablishmentCollection
| |--> EstablishmentDetail
| | |-->...
| |--> Scores
| | |-->...
но когда я обращаюсь к нему через ElementTree и ищу теги и атрибуты child
,
import xml.etree.ElementTree as ET
import urllib2
tree = ET.parse(
file=urllib2.urlopen('http://ratings.food.gov.uk/OpenDataFiles/FHRS408en-GB.xml' % i))
root = tree.getroot()
for child in root:
print child.tag, child.attrib
Я только получаю:
Header {}
EstablishmentCollection {}
что я предполагаю означает, что их атрибуты пусты. Почему это так, и как я могу получить доступ к детям, вложенным в EstablishmentDetail
и Scores
?
EDIT
Благодаря ответам ниже, я могу получить внутри дерева, но если я хочу получить значения, такие как в Scores
, это терпит неудачу:
for node in root.find('.//EstablishmentDetail/Scores'):
rating = node.attrib.get('Hygiene')
print rating
и производит
None
None
None
Почему это?