如何解决带有 xml.etree.ElementTree 的 XML 文档的 .text 输出
我正在尝试解析一个 XML 文档,以便只获取 tag 内的文本,但是当我测试打印节点时,它只显示方括号,这意味着我的命令 print(rede.text) 返回“属性错误:‘列表’对象没有属性‘文本’”。为什么将 XML 内容存储为列表对象以及如何访问标签内的文本?
import os
from xml.etree import ElementTree
file_name = '19008-data.xml'
full_file = os.path.abspath(os.path.join('WP19_Protokolle_2018-2020',file_name))
dom = ElementTree.parse(full_file)
redner = dom.findall('rede')
print(redner)
输出:[ ]
import os
from xml.etree import ElementTree
file_name = '19008-data.xml'
full_file = os.path.abspath(os.path.join('WP19_Protokolle_2018-2020',file_name))
dom = ElementTree.parse(full_file)
redner = dom.findall('rede')
print(redner.text)
AttributeError: 'list' 对象没有属性 'text'
解决方法
在官方文档 https://docs.python.org/3/library/xml.etree.elementtree.html 中我们可以看到以下解释:
*Element.findall()* 仅查找带有标记的元素,这些元素是当前元素的直接子元素。 Element.find() 查找具有特定标签的第一个子元素,Element.text 访问元素的文本内容。 Element.get() 访问元素的属性:
for country in root.findall('country'):
rank = country.find('rank').text
name = country.get('name')
print(name,rank)
,
为什么将 XML 内容存储为列表对象以及如何访问标签内的文本?
XML 内容不存储为列表。当我们查看 Element.findall()
方法的文档时,我们看到它:
返回一个包含文档顺序中所有匹配元素的列表。
在您的特定情况下,该方法找不到任何内容,因此返回了一个空列表。很明显,您无法在不存在的元素中找到文本。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。