parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Ответ

G_Z 21.12.2017 03:25 / 21.12.2017 05:31

Очень большой или сложный XML всё равно не получится разобрать и целиком построить DOM — легко упереться в лимиты ОС или фактический размер памяти и возможностей выделения памяти Парсером.
Для таких документов нужен парсер, работающий поблочно — читающий файл построчно, собирающий блок по известным открывающим и закрывающим тегам и дающий к его DOM'у интерфейс.

Если сложная работа (хождение по осям, хитрые критерии фильтрации узлов, работы с множествами — фактически XPath) с DOM не требуется, то можно организовать такой парсер самому, читая файл построчно и производя поиск и извлечение узлов и значений регулярными выражениями.
Но не в Парсере, сторонней утилитой, тем же grep'ом.

Либо привести XML к delemited-данным, положить в БД (LOAD DATA INFILE) и дальше комфортно работать с данными силами SQL.
Если совсем лень, есть неплохой инструмент от Microsoft — LogParser, который предоставляет SQL-интерфейс к логфайлам в разнообразных форматах, но только для Windows.

Крупные XML редко сложные, зачастую просто контейнер с большим числом однотипных элементов.