深度解析Python内建XML模块
1. 核心组件剖析
- ElementTree (xml.etree.ElementTree)
轻量级API,采用类似列表的树结构。性能优异,支持XPath查询(有限子集),是推荐首选。
import xml.etree.ElementTree as ET
tree = ET.parse('config.xml')
root = tree.getroot()
print(root.find('user/name').text) # XPath式查找
- DOM (xml.dom.minidom)
完整DOM实现,将整个XML加载为内存树。功能全面但内存消耗大,适合小文件操作。
from xml.dom import minidom
doc = minidom.parse('data.xml')
first_item = doc.getElementsByTagName('item')[0]
print(first_item.firstChild.data)
- SAX (xml.sax)
事件驱动模型,边读边解析。内存占用极低,适合GB级大文件,但需自定义处理器。
import xml.sax
class BookHandler(xml.sax.ContentHandler):
def startElement(self, name, attrs):
if name == "title":