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()方法來清理元素以釋放內存。最后,記得關閉文件。