Python ElementTree库怎么用 ElementTree解析XML入门

3次阅读

ElementTree是python标准库中轻量易用的xml解析模块,适合结构清晰、规模适中的xml处理;支持文件/字符串加载、树遍历、XPath查找、属性与文本读取及XML构建写入。

Python ElementTree库怎么用 ElementTree解析XML入门

Python 的 ElementTree标准库中轻量、易用的 XML 解析模块,适合处理结构清晰、规模适中的 XML 数据。它不追求完全符合 XML 规范(比如不支持 DTD 或命名空间高级特性),但对日常读写、遍历、修改 XML 足够高效直观。

加载和解析 XML

可以用字符串或文件路径创建根元素。推荐用 ET.parse() 读文件,ET.fromstring() 解析字符串:

  • 从文件加载:tree = ET.parse('data.xml'); root = tree.getroot()
  • 字符串解析root = ET.fromstring('Python')

注意:parse() 返回 ElementTree 对象,需调用 getroot() 获取根元素;fromstring() 直接返回根元素 Element

遍历和查找元素

每个 Element 像树节点,支持迭代子节点、按标签名查找、XPath 简化语法:

立即学习Python免费学习笔记(深入)”;

  • 直接子元素遍历:for child in root: 遍历一级子节点
  • 按标签名找所有匹配:root.findall('author')(只查直接子级)
  • 深度查找任意层级:root.findall('.//section/title')(支持简单 XPath)
  • 找第一个匹配:root.find('price')(返回 Element 或 None)

读取元素内容和属性

元素的文本内容在 .text 属性中,尾部空白(.tail)一般可忽略;属性用字典方式访问:

  • 获取文本:title_elem.text → 如 "Learning Python"
  • 获取属性:elem.get('id')(安全,不存在时返回 None)或 elem.attrib['id'](可能报 KeyError)
  • 完整示例:Fluent Pythonbook.get('id')"101"book.find('name').text"Fluent Python"

构建和写入 XML

ET.Element()ET.SubElement() 创建结构,最后用 tree.write() 保存:

  • 新建根节点:root = ET.Element('library')
  • 添加子节点:book = ET.SubElement(root, 'book', attrib={'id': '102'})
  • 设置文本:ET.SubElement(book, 'title').text = 'Effective Python'
  • 保存为文件:tree = ET.ElementTree(root); tree.write('output.xml', encoding='utf-8', xml_declaration=True)

写入时建议加 xml_declaration=True 输出标准 XML 声明行。

text=ZqhQzanResources