Подтвердить что ты не робот

Разница между XML SAX парсером, Pull parser & DOM Parser в android

Я хочу знать, какая разница между XML SAX парсером, парсером Pull и парсером DOM в Android. В каком состоянии, какой из них лучше в производительности и реализации?

Thanx. Khobaib.

4b9b3361

Ответ 1

Dom Parser -. Он использует объект на основе. то есть сначала загружает весь XML в память, преобразует узлы XML в объекты и затем начинает их синтаксический анализ. Таким образом, это довольно медленно.

SAX и PULL Parser - используют основанную на событиях. Оба они почти одинаковы с точки зрения памяти и производительности. Однако есть несколько отличительных ситуаций, когда их использовать, как описано ниже.

Dom Parser - Используйте его, когда вам нужно проверить весь XML перед разбором. Никогда не используйте его, когда XML слишком велик, и проверка может быть скомпрометирована. После того, как он начинает синтаксический анализ, он анализирует начиная с node до конца node. нет возможности анализировать только определенные узлы.

SAX - Используйте его, когда вы хотите разобрать весь XML. После того, как он начинает синтаксический анализ, он анализирует начиная с node до конца node. нет возможности анализировать только определенные узлы.

PULL - Используйте его, когда вы не хотите анализировать весь XML. Это проще реализовать, чем SAX, потому что вам не нужно поддерживать состояние вашего синтаксического анализатора. Вы можете тянуть только конкретный node, который вас интересует.

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

Ответ 2

Sax Parser: Простой API XML          Разберите node до node, используя обход сверху вниз, проанализируйте без сохранения xml,          Быстрее по сравнению с Dom          Разрешено манипулирование node как вставка или удаление.      Требуется SAXParserFactory

Dom Parser: Объектная модель документа            Хранит весь xml в памяти перед обработкой, перемещается в любом направлении,            НЕ разрешается манипулирование node как вставка или удаление.        Требуется DocumentBuilderFactory

Pull Parser: Он обеспечивает больше контроля и скорости от двух выше. Потребности pullParserFactory

Ответ 3

Это не вопрос программирования, но в любом случае вы можете начать, посмотрев парсер SAX и парсинг XMLPull

Я бы предложил сделать больше исследований перед публикацией.

Ответ 4

Что касается производительности, SAX обычно использует гораздо меньше памяти. И вы обрабатываете только те события, которые вы хотите, например. startElement(), startDocument(), endElement() и т.д. и т.д., и, таким образом, вы сохраните только нужные данные. DOM загрузит весь XML файл в память.