2

Мне нужно извлечь несколько содержимого поля из большого файла XML. В настоящее время я делаю это, хотя сочетание xmlstarlet и Python-скрипта (используя ElementTree). Идея заключалась в том, чтобы обрезать XML-файл из ненужных данных с помощью xmlstarlet, а затем обработать меньший файл с помощью Python (использование Python непосредственно для файла было невозможным - память и процессор были перегружены, а некоторые файлы так и не были обработаны). Это в основном работает, но:

  • это не эффективно
  • это не особенно гибко
  • это довольно некрасиво (наименьшее из моих опасений, но все же беспокойство с точки зрения обслуживания)

Я ищу совет о том, как лучше всего справиться с таким случаем (объем извлеченных данных составляет около 5% от исходного файла). Я открыт для всего разумного (определенного языка, может быть, выгрузить XML-файл в БД и затем извлечь то, что мне нужно, прежде чем выгрузить БД ?, ...)

1 ответ1

2

Используете ли вы iterparse ElementTree? Он должен быть в состоянии эффективно обрабатывать большие входные данные без анализа всего дерева в памяти (что обычно происходит, когда колеса выходят из анализатора XML).

Вы можете найти множество вариантов использования и примеров на stackoverflow.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .