У меня есть код Python для разбора XML-файла как подробно здесь . Я понимаю, что XML-файлы печально известны тем, что занимают системные ресурсы при манипуляциях в памяти. Мое решение работает для небольших файлов XML (скажем, 200 КБ, и у меня есть файл 340 МБ).
Я начал исследовать реализацию StAX (pull parser), но я работаю в сжатые сроки и ищу более простой подход к этой задаче.
Я понимаю создание небольших кусков файлов, но как мне извлечь нужные элементы, каждый раз выводя теги main / header?
Например, это схема:
<?xml version="1.0" ?>
<!--Sample XML Document-->
<bookstore>
<book Id="1">
....
....
</book>
<book Id="2">
....
....
</book>
<book Id="3">
....
....
</book>
....
....
....
<book Id="n">
....
....
</book>
</bookstore>
Как мне создать новые XML-файлы с данными заголовка для каждых 1000 элементов книги? Для конкретного примера кода и набора данных, пожалуйста, обратитесь к моему другому вопросу здесь . Большое спасибо.
Все, что я хочу сделать, это избегать одновременной загрузки набора данных в память. Можем ли мы проанализировать XML-файл в потоковом режиме? Думал ли я в правильном направлении?
p.s: Моя ситуация похожа на вопрос, заданный в 2009 году. Я опубликую ответ здесь, когда найду более простое решение для моей проблемы. Ваш отзыв приветствуется.