You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python3解析XML时如何将元素文本与属性输出在同一行并解决报错

问题修复方案

你代码的报错和属性提取问题来自两处语法错误:

  • attrib是存储节点所有属性的字典对象,只能用字典的[]语法取值,不能用()调用,这是触发TypeError的直接原因
  • 节点属性的值本身就是字符串,不需要额外调用.text属性,.text只用于提取子标签包裹的文本内容

可直接运行的修正代码

import xml.etree.ElementTree as et

tree = et.parse("cd_catalog.xml")
root = tree.getroot()
for child in root.findall("CD"):
    artist = child.find("ARTIST").text
    title = child.find("TITLE").text
    # 直接按字典取值规则取decade属性
    decade = child.attrib["decade"]
    print("Artist: %s, Title: %s, Decade: %s" %(artist, title, decade))

运行输出示例

对应你给出的XML样例,运行后会直接输出符合要求的单行内容:

Artist: Bob Dylan, Title: Empire Burlesque, Decade: 80s

可选优化

如果部分CD节点可能没有decade属性,可以改用字典的get方法避免抛出KeyError:

decade = child.attrib.get("decade", "未知")

内容的提问来源于stack exchange,提问作者Ejones222

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 14:09:05