Эффективное извлечение нескольких данных из большого XML-файла

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

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

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

15
задан WoJ
16.11.2022 18:25 Количество просмотров материала 2954
Распечатать страницу

1 ответ

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

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

2
отвечен mr.spuratic 2022-11-18 02:13

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх