в моем приложении я пытаюсь разобрать URL-адрес RSS-канала. Его работоспособность без ошибок. Но теперь меня беспокоят другие типы rss-каналов, такие как RDF и Autumn.
Вначале я имею представление об этих фидах. Теперь проблема заключается в том, что в моем приложении, когда пользователь анализирует URL-адрес RSS-канала, он будет работать нормально, но если пользователь проводит синтаксический анализ RDF-фида или фида осей, я уверен, что он не получит никакого контента из этих каналов, потому что открывающие теги различны для всех этих каналов.
Я беспокоюсь, что это создаст проблему в моем приложении, как решить эту проблему...
Я знаю, что я должен дать открывающие теги. У меня есть логичное представление об использовании случая переключения для каждого тега, связанного с RSS-каналом, фида RDF и т.д., Но я не знаю, чтобы реализовать его...
Пожалуйста, помогите мне.....
Я предполагаю, что вы в какой-то момент своего обработчика сделаете что-то вроде
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 при его обновлении.