我需要解析一个非常大(~40GB)的 XML 文件,从中删除某些元素,然后将结果写入一个新的 xml 文件。我一直在尝试使用 python 的 ElementTree 中的 iterparse,但我对如何修改树然后将生成的树写入新的 XML 文件感到困惑。我已经阅读了 itertree 上的文档,但还没有弄清楚。有什么简单的方法可以做到这一点吗?
谢谢!
编辑:这是我到目前为止所拥有的。
import xml.etree.ElementTree as ET
import re
date_pages = []
f=open('dates_texts.xml', 'w+')
tree = ET.iterparse("sample.xml")
for i, element in tree:
if element.tag == 'page':
for page_element in element:
if page_element.tag == 'revision':
for revision_element in page_element:
if revision_element.tag == '{text':
if len(re.findall('20\d\d', revision_element.text.encode('utf8'))) == 0:
element.clear()