Является ли libxml2 парсер DOM или последовательный парсер? - PullRequest
0 голосов
/ 02 декабря 2011

Я сделал оболочку для некоторых базовых вещей в libxml2, таких как захват содержимого элементов, переход на дочерние узлы и т. Д.

Мой супер-пользователь только что попросил меня убедиться, что я анализирую XML-файл последовательно ине загружает весь DOM в память.

Я почти уверен, что делаю это поочередно, но я не смог найти никакой документации по разбору тем или иным способом.

ЛюбойСпасибо за помощь, спасибо!

Ответы [ 2 ]

1 голос
/ 02 декабря 2011

libxml2 может работать в любом режиме.Это просто зависит от того, как ваш код использует его.Вы можете проанализировать полный файл в DOM или использовать обратные вызовы Sax для последовательного анализа.Как выглядит ваш код синтаксического анализа?

0 голосов
/ 04 декабря 2011

Вы можете использовать два разных API.

xmlTextReader - это потоковая программа чтения, которую вы хотите использовать, вызывая xmlTextReaderRead () несколько раз, чтобы продвигать анализатор по файлу. http://xmlsoft.org/xmlreader.html

Если вы работаете с объектами xmlDocPtr / xmlNodePtr, возвращаемыми такими вещами, как xmlParseFile, то это DOM API на основе дерева. http://xmlsoft.org/examples/index.html#tree1.c

...