Что я должен использовать для анализатора XML в моем приложении для Android? - PullRequest
1 голос
/ 20 марта 2012

Я хочу создать приложение, которое использует потенциально большой XML-файл. Он также изменится и в идеале сможет пройти задним ходом.

Я знаю, что есть SAX, DOM и синтаксический анализатор XML. Синтаксический анализатор отключен, если только я не трачу память на создание собственного дерева объектов, которое кажется неосуществимым. Это оставляет SAX и DOM, если нет другого парсера, который может делать то, что я хочу. Очень невероятно, я знаю. Да, я видел этот ответ: https://stackoverflow.com/questions/7498616/which-xml-parser-should-i-use-for-android Мысли о том, чтобы использовать дерево как юзабилити без использования DOM?

Ответы [ 2 ]

0 голосов
/ 20 марта 2012

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

Если XML действительно большой, то лучше отфильтровать со стороны сервера, отправив требования в запросе, иначе мы можем пойти на разбиение на страницы, что можно предположить.

0 голосов
/ 20 марта 2012

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

SAX - это парсер, в котором ваш код уведомляется, когда парсер проходит по дереву XML, и вы несете ответственность за отслеживание состояния и создание любых объектов, которые могут потребоваться для отслеживания данных при прохождении синтаксического анализатора.

DOM синтаксический анализатор считывает весь документ и создает представление в памяти, которое можно запрашивать для различных элементов. Зачастую вы даже можете создавать запросы XPath для извлечения определенных фрагментов.

И, как вы сказали, у вас большой файл, а также, если вы хотите повысить производительность, я предлагаю вам использовать StAX-парсер. Вот для этого ссылка .

Надеюсь, это поможет вам ...

Также смотрите эту ссылку .

...