如何从顶级元素树XML元素中提取数据?

时间:2017-09-07 18:58:59

标签: python xml

我正在学习python的XML元素树。我已经成功地根据自己的需要从API中获取了XML响应,并使用我在网上找到的指南对其进行了解析。 https://pymotw.com/2/xml/etree/ElementTree/parse.html

我的示例XML看起来像这样,调用中没有子对象:

<Response>
<Title>Student</Title>
<Date>7/18/2017 10:04:45 AM</Date>
<Description>Removed from group</Description>
</Response>

根据文章,文章我迭代了下面的响应,以提取元素树中的标签和属性:

tree = et.fromstring(xml_response)

for node in tree.iter('Group'):
    print node.tag, node.attrib

这使得所有XML元素都成为空字典项(我认为),这显示如下:

Title{}
Date{}
Description{}

现在我想抓住每个电话中的数据,这是我的尝试:

for node in tree.iter('Title'):
    Title = node.attrib.get('Title')
    print Title

我得到的输出是上面代码中的“None”。我的问题是XML标签之间的数据包发生了什么,我如何访问数据?

提前谢谢你。

1 个答案:

答案 0 :(得分:1)

使用

print node.tag, node.text

而不是

print node.tag, node.attrib

对于xml行<Date a="b">7/18/2017 10:04:45 AM</Date>
node.attrib将输出{'a':'b'}
node.text将输出'7/18/2017 10:04:45 AM'