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