Я предполагаю, что в какой-то момент ваш обработчик сделает что-то вроде
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 / Осень и т. Д. При его обновлении.