Python读取XML主要用xml.etree.ElementTree:ET.parse()解析文件获ElementTree对象再.getroot()得根元素;ET.fromstring()直接解析字符串得根元素;常用root.find()、findall()、.text、.get()等操作提取数据。

Python 读取 XML 主要靠内置的 xml.etree.ElementTree(简称 ET),它轻量、易用、无需额外安装,适合大多数日常解析需求。
用 ElementTree 解析 XML 文件
这是最常用的方式,适合读取本地 .xml 文件:
- 用
ET.parse("文件路径")加载并解析整个文档,返回一个ElementTree对象 - 调用
.getroot()获取根元素(Element类型),后续所有查找、遍历都从它开始 - 例如:
tree = ET.parse("data.xml"); root = tree.getroot()
解析 XML 字符串(非文件)
如果 XML 内容来自网络响应、数据库或变量字符串,用 ET.fromstring():
- 直接传入字符串,返回根元素对象,跳过创建 tree 的步骤
- 例如:
xml_str = " "; root = ET.fromstring(xml_str)Alice
常用操作:找元素、取文本、遍历子节点
拿到 root 后,可快速提取数据:
-
root.tag:获取根标签名(如"note") -
root.text:获取直接子文本(注意:常为空,需查子元素) -
root.find("to"):查找第一个匹配的直接子元素(返回 Element 或 None) -
root.findall("to"):查找所有同名直接子元素(返回列表) -
for child in root::遍历所有直接子元素 -
elem.get("attr_name"):获取元素属性值(如→elem.get("id")返回"101")
简单示例:读取并打印 note.xml 中的 to 和 from
假设文件内容为:
import xml.etree.ElementTree as ETroot = ET.parse("note.xml").getroot()print(root.find("to").text) # 输出 Bobprint(root.find("from").text) # 输出 Alice











