Как анализировать различные XML-файлы с помощью SAX на Android? - PullRequest
1 голос
/ 27 августа 2010

У меня следующий сценарий.

Я отправляю XML-файл на сервер в качестве запроса и получаю XML-файл в качестве ответа и все это в качестве фонового потока на Android.

XML-запрос сериализуется с использованием различных значений.Ответ XML затем читается SAX и помещается в список.Весь процесс запроса / ответа происходит в фоновом потоке с использованием класса AsyncTask.

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

Как сказать Android использовать синтаксический анализатор A на основе запроса A и анализатор B на основе запроса B?

РЕДАКТИРОВАТЬ: При разных типах ответовзначит, XML-файл выглядит иначе.У него разные теги и разные атрибуты.

Ответы [ 2 ]

2 голосов
/ 27 августа 2010

Вот варианты, как я их вижу:

  1. Вы можете основывать возможность синтаксического анализа на основе запроса (который должен иметь некоторый контекст). Если вы знаете, что запрос типа A, то вы знаете, что ответ ДОЛЖЕН использовать синтаксический анализатор A.
  2. Вы можете иметь универсальный парсер для всех типов и передавать то, что происходит в парсере, основываясь на первом известном теге или атрибуте, который диктует, что должно быть сделано.
  3. Сначала разберись, потом проанализируй. Возьмите все элементы ответа и постройте из них графы объектов или объектов. Передайте их, измените их, если это необходимо для вашего приложения (не пытайтесь редактировать xml - вы все равно его анализируете и хотите, чтобы это закончилось как можно скорее).

Удачи!

1 голос
/ 27 августа 2010

объект ответа на все сообщения, укажите атрибут для указания и тип объекта в ответе xml

<response>
<error/>
<data type="A">
</data>
</response>

<response>
<error/>
<data type="B">
</data>
</response>
...