Я пытаюсь разобрать этот XML-строку, используя ElementTree в Python,Python XML разбора с ElementTree возвращает None
данные хранятся в виде строки,
xml = '''<?xml version="1.0" encoding="utf-8"?>
<SearchResults xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Student>
<RollNumber>1</RollNumber>
<Name>Abel</Name>
<PhoneNumber>Not Included</PhoneNumber>
<Email>[email protected]</Email>
<Grade>7</Grade>
</Student>
<Student>
<RollNumber>2</RollNumber>
<Name>Joseph</Name>
<PhoneNumber>Not Included</PhoneNumber>
<Email>[email protected]</Email>
<Grade>7</Grade>
</Student>
<Student>
<RollNumber>3</RollNumber>
<Name>Mike</Name>
<PhoneNumber>Not Included</PhoneNumber>
<Email>[email protected]</Email>
<Grade>7</Grade>
</Student>
</SearchResults>'''
Код я использовал для разбора этой строки как XML,
from xml.etree import ElementTree
xml = ElementTree.fromstring(xml)
results = xml.findall('Student')
for students in results:
for student in students:
print student.get('Name')
print results
выводит результаты в виде элементов,
[<Element 'Student' at 0x7feb615b4ad0>, <Element 'Student' at 0x7feb615b4c50>, <Element 'Student' at 0x7feb615b4e10>]
внутри для цикла, print students
печатает то же самое,
<Element 'Student' at 0x7fd722d88ad0>
<Element 'Student' at 0x7fd722d88c50>
<Element 'Student' at 0x7fd722d88e10>
Во всяком случае, когда я пытаюсь получить имя студента с помощью print student.get('Name')
, программа возвращает None.
Что я пытаюсь сделать, это вывести значения из xml для каждого тега и построить dict.