lxml库提供了一个叫做iterparse()的方法,可以对XML文档进行流式处理。
以下是一个简单的例子:
from lxml import etree # 打开XML文档 xml_file = open('example.xml', 'rb') # 创建解析器 parser = etree.iterparse(xml_file, events=('start', 'end')) # 遍历解析器 for event, element in parser: if event == 'start': # 处理开始标签 print(f'Start tag: {element.tag}') elif event == 'end': # 处理结束标签 print(f'End tag: {element.tag}') # 清理元素以释放内存 element.clear() # 关闭文件 xml_file.close()
在这个例子中,我们打开了一个XML文档,然后使用iterparse()方法创建了一个解析器。通过遍历解析器,我们可以对XML文档进行流式处理,处理开始标签和结束标签。在处理完每个元素后,我们调用element.clear()方法来清理元素以释放内存。最后,记得关闭文件。