我正在处理非常大的XML文件(> 1GB),并且需要一种增量写入它们的方法。
只有一个顶级元素和数千个大型第二元素(每个元素都有自己的多层次结构)。 我尝试过:
from lxml import etree
with etree.xmlfile(out_file_name, encoding = 'UTF-8') as xf:
xf.write_declaration()
with xf.element('top'):
xf.write('\n')
# parse individual input files and write the 2nd level element to the output
for file_name in file_list:
context = etree.iterparse(file_name, tag='my_2nd_level_tag', remove_blank_text = True)
for _, elem in context:
xf.write(elem, pretty_print=True))
结果是'top'元素的缩进与第二级元素相同(零>)。
我正在寻找一种干净的方法来使用lxml的增量XML写入来生成完全缩进的XML。