Я хочу знать, какая разница между XML SAX парсером, парсером Pull и парсером DOM в Android. В каком состоянии, какой из них лучше в производительности и реализации?
Thanx. Khobaib.
Я хочу знать, какая разница между XML SAX парсером, парсером Pull и парсером DOM в Android. В каком состоянии, какой из них лучше в производительности и реализации?
Thanx. Khobaib.
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.
Sax Parser: Простой API XML Разберите node до node, используя обход сверху вниз, проанализируйте без сохранения xml, Быстрее по сравнению с Dom Разрешено манипулирование node как вставка или удаление. Требуется SAXParserFactory
Dom Parser: Объектная модель документа Хранит весь xml в памяти перед обработкой, перемещается в любом направлении, НЕ разрешается манипулирование node как вставка или удаление. Требуется DocumentBuilderFactory
Pull Parser: Он обеспечивает больше контроля и скорости от двух выше. Потребности pullParserFactory
Это не вопрос программирования, но в любом случае вы можете начать, посмотрев парсер SAX и парсинг XMLPull
Я бы предложил сделать больше исследований перед публикацией.
Что касается производительности, SAX обычно использует гораздо меньше памяти. И вы обрабатываете только те события, которые вы хотите, например. startElement(), startDocument(), endElement() и т.д. и т.д., и, таким образом, вы сохраните только нужные данные. DOM загрузит весь XML файл в память.