ibm.com/developerworks/xml/library/x-hiperfparse
я есть код 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-файл в потоковом режиме? Я думаю по правильному пути?
PS: Моя ситуация похожа назаданный вопрос в 2009 году. Выложу ответ здесь, когда найду более простое решение для моей проблемы. Ваше мнение приветствуется.