6

Я разрабатываю приложение, в котором в первый раз я буду разбирать данные из XML-файла, поступающего с удаленного сервера.Android: лучший парсер для анализа данных XML

Но я не могу выбрать, какой парсер эффективен или лучше всего подходит для синтаксического анализа. Поскольку в основном три типа синтаксического анализа, которые я знаю:

  1. SAX
  2. XMLPullParsing
  3. DOM

Какой лучший анализатор для анализа данных? Как я искал в Google и нашел положительную и отрицательную стороны обеих парсеров. Но я не смог определить, какой из них наиболее эффективен.

XML имеет тяжелые данные с рядом тегов.

Прошу вас посоветуйте и предложите мне, какой парсер я должен использовать, поскольку я использую парсинг в своем приложении в первый раз.

+0

использование sax или xmlpullparsing. – Raghunandan

+1

, если размер файла является разумным, попробуйте dom. если он не подходит для ядра, используйте саксофон. покажите нам свою схему и сообщите нам, какие вещи вы делаете с данными. –

+0

. Значит, sax, если хорош, чем dom для тяжелых данных, но, пожалуйста, расскажите мне о xmlpullparser. Лучший среди саксофона и xmlpull. –

ответ

9

Во всех парсерах Sax синтаксического анализатора XML самый быстрый из них, поэтому вы можете без всякого сомнения пойти на это. Если вам нужно читать и записывать данные из XML, вы можете пойти на DOM. Используя синтаксический анализатор SAX, вы сможете читать данные только из XML. Поскольку эти два находятся в верхней части списка, вам не нужно думать о XMLPullparser.

+0

извините, но у анализатора SAX есть проблема с тегом self close , есть ли у вас какие-либо решения для решения этой проблемы? – vuhung3990

18

SAX Parsing является лучшим для реализации, чем DOM. Чувствуете разницу между этими двумя в следующем:

DOM:

  • Узлы в виде древовидной структуры.
  • Память: занимает больше памяти, DOM используется только в случае небольших документов XML.
  • Медленнее во время выполнения.
  • Хранится как объекты.
  • Программно прост в применении.
  • Простота навигации и использования.

SAX:

  • Последовательность событий.
  • Он не использует память для больших документов.
  • Быстрее во время выполнения, из-за вышеупомянутого пункта.
  • Объекты должны быть созданы.
  • Необходимо написать код для создания объектов.
  • В SAX Обратный переход невозможен, поскольку он последовательно обрабатывает документ .
+2

+1. Это отличное сравнение. Я хотел бы подчеркнуть, что SAX сложнее реализовать, потому что программист должен пройти через узлы. Но он быстрее, использует меньше памяти и намного лучше подходит для больших наборов данных XML или потоковой передачи данных XML. –

+0

Точно друг. :) –

1

Я бы сказал, что XMLPullParsing, но в последнее время я слышал отличные вещи о Xerces, возможно, захочет изучить и этот. Однако никогда не использовал Xerces, и XMLPullParser никогда не подводил меня. Мы создаем приложение с цветным слепым, которое использовало его, и оно тянет тысячи цветных комбо, чтобы рассказать вам, какой цвет вы только что сделали.

обновление: Heres несколько ссылок, чтобы читать, если вы не возражаете чтение: р, показывает минусы и льготы для обеих сторон

http://www.firstobject.com/xml-reader-sax-vs-xml-pull-parser.htm

Также еще один ответ может быть прочитан в SAX parser vs XMLPull parser

Смежные вопросы