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

Python:合法XML树调用getchildren()报AttributeError问题求助

解决AttributeError: 'ElementTree' object has no attribute 'getchildren'

嘿,这个问题其实是个常见的小误区——你搞混了ElementTree对象和Element对象的方法!

tree = ET.parse(...)返回的是整个XML树的容器(ElementTree实例),而getchildren()是**单个XML节点(Element实例)**才有的方法。你得先拿到XML的根节点,再操作它。

修正后的代码

这里给你调整好的版本,顺便解决了路径转义的小坑:

import xml.etree.ElementTree as ET
# 路径前加r前缀,避免反斜杠被当成转义字符
tree = ET.parse(r'C:\temp\test2.xml')
# 获取XML的根元素
root = tree.getroot()

# 获取根元素的直接子节点,Python 3.9+推荐这种写法
print(list(root))

# 如果你用的是Python 3.8及更早版本,也可以用已弃用的getchildren()
# print(root.getchildren())

补充说明

  • 关于路径:Windows路径里的反斜杠\在Python字符串里会被解析为转义字符,加r前缀变成原始字符串就能避免这个问题。
  • 关于getchildren():这个方法在Python 3.9之后已经被移除了,官方推荐直接把Element对象转为列表来获取直接子节点,或者用root.iter()来遍历所有后代节点,这样代码兼容性更好。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:56:36