python - 使用 xml.etree.ElementTree 从 XML 文档输出 .text
问题描述
我正在尝试解析 XML 文档,以便只获取 tag 内的文本,但是当我测试打印节点时,它只显示方括号,这意味着我的命令 print(rede.text) 返回“AttributeError: 'list' 对象没有属性 '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:“列表”对象没有属性“文本”
解决方案
在官方文档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)
推荐阅读
- c# - 当我认为我已经定义了需要定义的内容时,为什么会出现命名空间错误?
- javascript - 尝试使用 nightmare.js 从搜索结果中获取数据,但出现错误:“无法读取未定义的属性 'click'”
- c# - 数据网格中的 AutoSuggestBox?
- javascript - 将文本字段中的值转换为段落
- python - 如何在用户单击按钮后插入新文本之前测试 Tkinter 文本框小部件的当前文本?
- python - 从 Python 中的配对键字典中检索值
- google-groups - 将电子邮件分配给 google 组类别
- c# - 打开命令提示符并从 Windows 窗体应用程序执行命令
- javascript - 如何在 JavaScript 中删除嵌套的空对象?
- php - 是否可以使用 php 创建 css 规则?