I tried making a parser for both RSS and Atom where RSS feed shows the headlines while Atom shows with images and description plus link. It seems my parser works only for RSS. Can you tell me why? Check this one:
public void Get_Parse_Feed(String URL_link, Input_Streamer_Class is, List<String> headlines, List<String> links)
{
try
{
// URL
is = new Input_Streamer_Class();
/*
*
* Reserved URLS:
* --> http://feeds.pcworld.com/pcworld/latestnews
* --> http://feeds2.feedburner.com/boy-kuripot
* --> http://feeds2.feedburner.com/phcreditcardpromos
* --> http://feeds.feedburner.com/blogspot/MKuf
* --> http://googleblog.blogspot.com/atom.xml
*
*/
is.Set_URL(URL_link);
// Set XML pull factory.
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(false);
XmlPullParser xpp = factory.newPullParser();
// Picking up input stream...
xpp.setInput(is.Get_Input_Stream(is.Get_URL()), "UTF_8");
// Check for inside item.
boolean insideItem = false;
// Pick event type. (START_TAG, END_TAG, etc.)
int eventType = xpp.getEventType();
while(eventType != XmlPullParser.END_DOCUMENT)
{
if(eventType == XmlPullParser.START_TAG)
{
if(xpp.getName().equalsIgnoreCase("item"))
{
insideItem = true;
} else if(xpp.getName().equalsIgnoreCase("title")) {
if(insideItem)
{
headlines.add(xpp.nextText()); // --> Extract the headline.
}
} else if(xpp.getName().equalsIgnoreCase("link")) {
if(insideItem)
{
links.add(xpp.nextText()); // --> Extract the link of article.
}
}
} else if((eventType == XmlPullParser.END_TAG) && xpp.getName().equalsIgnoreCase("item")) {
insideItem = false;
}
eventType = xpp.next(); // --> Move to the next element.
}
} catch(MalformedURLException e) {
e.printStackTrace();
} catch(XmlPullParserException e) {
e.printStackTrace();
} catch(IOException e) {
e.printStackTrace();
}
}
Every time when I found this tutorial plus managing with MVC for myself, the results is impressive. However, when I try implementing a URL contains Atom feed and it didn't show up.
Its obvious the structure is different, you need 2 different parsers! Or 2 packed in one (don't really know how helpful will be that)
Because:
RSS 2.0:
Atom 1.0:
Comparison here, the difference problem in your code is that on atom you have
entry
notitem
as in rss!