python解析XML 作者:马育民 • 2020-02-17 10:10 • 阅读:10108 # 概述 python解析xml的方式有若干种: 1. SAX 2. DOM 3. ElementTree 4. **lxml** 其中SAX、DOM,在java开发语言中也有类似概念 在python中,目前解析xml最流行的是 **lxml** ### DOM 全称:Document Object Model 是W3C组织推荐的处理可扩展置标语言的标准编程接口。 在解析 XML 文档时,**一次性读取整个文档**,将 XML 数据解析成一个树,放在内存中,通过对树的操作来操作XML。 **优点:** 简单 **缺点:** 一次解析整个xml文档,构建成树,并放入到内存中,耗费时间和内存 ### SAX SAX是一种基于事件驱动的 API。 SAX解析XML需要: **解析器** 和 **事件处理器**。 **解析器** 负责读取XML文档,并向事件处理器发送事件,如元素开始跟元素结束事件。 **事件处理器** 则负责对事件作出响应,对传递的XML数据进行处理。 Python 标准库包含 SAX 解析器 优点: 无需将整个文档加载到内存,因而内存消耗少 缺点: 操作复杂 ### ElementTree ElementTree就像一个轻量级的DOM,具有方便友好的API。代码可用性好,速度快,消耗内存少。 注:因DOM需要将XML数据映射到内存中的树,一是比较慢,二是比较耗内存,而SAX流式读取XML文件,比较快,占用内存少,但需要用户实现回调函数(handler)。 # lxml 参加:https://www.malaoshi.top/show_1EF504JL0LdB.html 原文出处:http://malaoshi.top/show_1EF504Kb0xuD.html