lxml: написать инкрементную красивую печать xml - PullRequest
0 голосов
/ 06 мая 2019

Я работаю с очень большими файлами XML (> 1 ГБ) и мне нужен метод для их постепенной записи.

Существует один элемент верхнего уровня и тысячи больших элементов 2-го уровня (каждый имеет свою собственную многоуровневую иерархию). Я попробовал это:

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 имеет одинаковый (нулевой) отступ, как элемент 2-го уровня.

Я ищу чистый способ использования инкрементных XML-записей lxml для создания полностью с отступом XML.

...