Хотелось бы подробнее задачу: какая структура документа, насколько часто будет выполнятся, какой сервер, какие ресурсы вы готовы задействовать?
Как уже сказали SimpleXML, DOM или SAX индексируют все в память и 800 МБ — это не мало. Хотя на сервере с несколькими гигабайтами оперативки и при нечастом запросе данного функционала я бы так сделал и не мучился, в любом случае обработка 800 МБ — это не простая операция.
Есть куча парсеров, которые ничего не индексируют, а проходятся по файлу регулярками, я пробовал использовать XMLReader, но у меня он очень сильно тормозит, даже после оптимизации и загрузки кусков в SimpleXML, этот вариант в продакшин так и не пошел.
В итоге я написал свой парсер, который читал файлы последовательно, посимвольно, создавая блоки непосредственно «итемов» которые уже грузил в SimpleXML и затем обрабатывал. Я считаю этот вариант единственный рабочий для больших файлов, а инструменты вроде XMLReader для очень узких задач, хотя не исключаю, что я «просто не умею их готовить».
Такой мой опыт, абсолютно не претендую на полноту знаний, но это реально работающий вариант.