Как проанализировать все типы RSS-канала в один синтаксический анализатор в Android

1

в моем приложении я пытаюсь разобрать URL-адрес RSS-канала. Его работоспособность без ошибок. Но теперь меня беспокоят другие типы rss-каналов, такие как RDF и Autumn.

Вначале я имею представление об этих фидах. Теперь проблема заключается в том, что в моем приложении, когда пользователь анализирует URL-адрес RSS-канала, он будет работать нормально, но если пользователь проводит синтаксический анализ RDF-фида или фида осей, я уверен, что он не получит никакого контента из этих каналов, потому что открывающие теги различны для всех этих каналов.

Я беспокоюсь, что это создаст проблему в моем приложении, как решить эту проблему...

Я знаю, что я должен дать открывающие теги. У меня есть логичное представление об использовании случая переключения для каждого тега, связанного с RSS-каналом, фида RDF и т.д., Но я не знаю, чтобы реализовать его...

Пожалуйста, помогите мне.....

Теги:
feed
rdf
rss

1 ответ

3
Лучший ответ

Я предполагаю, что вы в какой-то момент своего обработчика сделаете что-то вроде

if (localName.equals("tag")
{
   // inside an <tag> field
}

и там вы можете просто пойти

if ((localName.equals("tag1")) || (localName.equals("tag2") || ...)

для каждого из различных имен открывающих тегов. Тем не менее, мне кажется, что мне лучше, если вы можете узнать/узнать тип канала перед его синтаксическим анализом, чтобы иметь разные пользовательские XML-парсеры для каждого (например, RSSXMLHandler, RDFXMLHandler и т.д.) И использовать их как

  SAXParserFactory spf = SAXParserFactory.newInstance();
  SAXParser sp = spf.newSAXParser();

  XMLReader xr = sp.getXMLReader();

  if (feedType.equals("RSS"))
  {
    RSSXMLHandler mHandler = new RSSXMLHandler();
  }
  else if (feedType.equals("RDF"))
  {
    RDFXMLHandler mHandler = new RDFXMLHandler();
  }
  else if (andSoOn)
  {
  }

  xr.setContentHandler(mHandler);

Таким образом, если кто-то изменится - например, предположим, что формат корма RDF изменяется, вам не нужно беспокоиться о нарушении чтения RSS/Autumn etc feed при его обновлении.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню