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 году. Выложу ответ здесь, когда найду более простое решение для моей проблемы. Ваше мнение приветствуется.

Ответы на вопрос(2)

Ваш ответ на вопрос