【发布时间】:2015-07-24 14:35:12
【问题描述】:
我正在尝试在 Python 中使用 ElementTree 解析这个 xml 字符串,
存储为字符串的数据,
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>abel@hisschool.edu</Email>
<Grade>7</Grade>
</Student>
<Student>
<RollNumber>2</RollNumber>
<Name>Joseph</Name>
<PhoneNumber>Not Included</PhoneNumber>
<Email>joseph@hisschool.edu</Email>
<Grade>7</Grade>
</Student>
<Student>
<RollNumber>3</RollNumber>
<Name>Mike</Name>
<PhoneNumber>Not Included</PhoneNumber>
<Email>mike@hisschool.edu</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>]
在 for 循环中,print students 打印出相同的内容,
<Element 'Student' at 0x7fd722d88ad0>
<Element 'Student' at 0x7fd722d88c50>
<Element 'Student' at 0x7fd722d88e10>
无论如何,当我尝试使用 print student.get('Name') 获取学生的姓名时,程序返回 None。
我要做的是从每个标签的 xml 中提取值并构造一个字典。
【问题讨论】:
标签: python xml elementtree