我需要解析一個非常大的(〜40GB)XML文件,從中刪除某些元素,並將結果寫入新的xml文件。我一直試圖從python的ElementTree中使用iterparse,但是我對如何修改樹並將結果樹寫入新的XML文件感到困惑。我已經閱讀了關於itertree的文檔,但它並沒有解決問題。有沒有簡單的方法來做到這一點?使用python ElementTree的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()
您能否顯示您嘗試的代碼(即使它不完整)?幫助你修復它而不是從頭開始寫東西會節省時間。 – 2013-03-14 02:07:35
在上面的代碼中添加了我的問題。 – LateCoder 2013-03-15 02:56:12
我早些發現了。對不起,我一直在忙着其他的事情,但我保證我會盡快看看。與此同時,我提出了關於聊天的問題,以引起更多關注。 – 2013-03-15 02:58:24