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

首次处理XML文件遇报错:ElementTree对象无tag属性求排查提示

问题原因及解决方法

错误根源

ET.tostring()函数要求传入的是Element对象(XML节点),但你传入的是ElementTree对象(tree变量,由ET.parse()返回的是整个XML文档的树结构),这就导致了'ElementTree' object has no attribute 'tag'的报错——因为ElementTree没有tag属性,只有Element节点才有。

修正后的代码

先通过getroot()获取XML的根节点(Element对象),再传给ET.tostring():

from xml.etree import ElementTree as ET

tree = ET.parse('some_xml_file.xml')
root = tree.getroot()  # 先拿到根Element节点
s = ET.tostring(root, method='xml')  # 传入root而非tree

额外提示

  1. 清晰区分ElementTree和Element:
    • ET.parse()返回的是整个文档的树结构(ElementTree),它负责管理整个XML文档
    • getroot()从树中提取根节点(Element),所有节点操作都基于Element对象
  2. 如果只是需要读取XML文件的原始文本(不需要解析XML结构),可以直接用文件读取:
    with open('some_xml_file.xml', 'r', encoding='utf-8') as f:
        xml_str = f.read()
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 00:25:28