Как разветвить парсер SAX в зависимости от первого известного тега? - PullRequest
3 голосов
/ 31 августа 2010

Мне трудно анализировать несколько разных XML-файлов на Android с помощью встроенного парсера SAX.

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

У меня есть десять различных файлов XML.

Пример ResponseOne.

<?xml version="1.0" encoding="UTF-8"?>
<ResponseOne>
  <InnerTag Id="1">
  </InnerTag>
</ResponseOne>

Пример ResponseTwo.

<?xml version="1.0" encoding="UTF-8"?>
<ResponseTwo>
  <AnotherInnerTag State="2">
  </AnotherInnerTag>
</ResponseTwo>

И так далее.Каждый корневой тег отличается.Теперь я знаю, что могу разветвлять синтаксический анализатор, чтобы инициировать различное событие для каждого корневого тега, но я не совсем уверен, что знаю, как именно добиться этого.

Как бы я сказал своему обработчику SAX, что он должен анализироватьдля AnotherInnerTag с его атрибутами, основанными на корневом теге?

1 Ответ

1 голос
/ 01 сентября 2010

Если предположить, что синтаксический анализатор Android SAX похож на синтаксический анализатор Java SE SAX, можно использовать следующую стратегию:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...