OK, so I am trying to parse this feed for an android application:
and I am doing it with this code:
protected List<GamestarFeedItem> doInBackground(Context... params) {
context = params[0];
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
List<GamestarFeedItem> items = new ArrayList<GamestarFeedItem>();
test = new ArrayList<String>();
try {
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(new URL("http://rss.feedsportal.com/c/370/f/5299/index.rss").openConnection().getInputStream());
//Document document = builder.parse(new URL("http://www.gamestar.de/rss/gamestar.rss").openConnection().getInputStream());
Element root = document.getDocumentElement();
NodeList docItems = root.getElementsByTagName("item");
Node nodeItem;
for(int i = 0;i<docItems.getLength();i++){
nodeItem = docItems.item(i);
if(nodeItem.getNodeType() == Node.ELEMENT_NODE){
GamestarFeedItem feedItem = new GamestarFeedItem();
NodeList element = nodeItem.getChildNodes();
feedItem.setTitle(element.item(0).getFirstChild().getNodeValue());
feedItem.setSummary(element.item(2).getNodeValue());
feedItem.setLink(element.item(1).getFirstChild().getNodeValue()); feedItem.setDate(element.item(3).getFirstChild().getNodeValue());
//feedItem.setImage(element.getChild(""));
test.add(element.item(0).getFirstChild().getNodeValue());
String aaa = element.item(2).getNodeName();
items.add(feedItem);
}
}
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return items;
}
Now, everything so far works right, except that this line :
feedItem.setSummary(element.item(2).getNodeValue());
just returns a < instead of the description, and with this line i know that i am trying to extract the right element:
String aaa = element.item(2).getNodeName();
Now, here is a example of such a description:
<a href=”http://www.gamestar.de/news/vermischtes/2564931/gamepro_apps_fuer_ios_und_android.html”><img align=”left” hspace=”5″ src=”http://images.idgentertainment.de/images/idgwpgsgp/bdb/2275036/127x.jpg”/></a> Aktuelle News, Spiele-Tests, Previews und Releases für Xbox 360, PlayStation 3 und Vita sowie Nintendo-Systeme auch unterwegs immer dabei: Ab jetzt sind kostenfreie GamePro-Apps im Android Market und in iTunes verfügbar.<img width=’1′ height=’1′ src=’http://rss.feedsportal.com/c/370/f/5299/s/1cbb8bf0/mf.gif‘ border=’0’/><div class=’mf-viral’><table border=’0′><tr><td valign=’middle’><a href=”http://share.feedsportal.com/viral/sendEmail.cfm?lang=de&title=GamePro-Apps+f%C3%BCr+iOS+und+Android+-+Auf+dem+Smartphone+up-to-date+in+der+Welt+der+Konsolen-Spiele&link=http%3A%2F%2Fwww.gamestar.de%2Fnews%2Fvermischtes%2F2564931%2Fgamepro_apps_fuer_ios_und_android.html” target=”_blank”><img src=”http://rss.feedsportal.com/images/emailthis2.gif” border=”0″ /></a></td><td valign=’middle’><a href=”http://res.feedsportal.com/viral/bookmark_de.cfm?title=GamePro-Apps+f%C3%BCr+iOS+und+Android+-+Auf+dem+Smartphone+up-to-date+in+der+Welt+der+Konsolen-Spiele&link=http%3A%2F%2Fwww.gamestar.de%2Fnews%2Fvermischtes%2F2564931%2Fgamepro_apps_fuer_ios_und_android.html” target=”_blank”><img src=”http://rss.feedsportal.com/images/bookmark.gif” border=”0″ /></a></td></tr></table></div><br/><br/><a href=”http://da.feedsportal.com/r/126178574663/u/355/f/5299/c/370/s/1cbb8bf0/kg/300/a2.htm”><img src=”http://da.feedsportal.com/r/126178574663/u/355/f/5299/c/370/s/1cbb8bf0/kg/300/a2.img” border=”0″/></a><img src=”http://da.feedsportal.com/r/126178574663/u/355/f/5299/c/370/s/1cbb8bf0/kg/300/a2t.img” border=”0″/>
So, can anyone help?
OK, i found the solution.
Because of the format of the “description”, it actually consists of multiple child items, so u just extract those childs into a Nodelist and loop over them to extraxt their content and problem solved