好的,所以我试图解析这个feed的android应用程序:
我正在使用此代码执行此操作:
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;
}
现在,到目前为止一切正常,除了这一行:
feedItem.setSummary(element.item(2).getNodeValue());
只返回一个<
而不是描述,并且通过这一行,我知道我正在尝试提取正确的元素:
String aaa = element.item(2).getNodeName();
现在,这是一个这样的描述的例子:
&lt; a href =“http://www.gamestar.de/news/vermischtes/2564931/gamepro_apps_fuer_ios_und_android.html”&gt;&lt; img align =“left”hspace =“5”src =“http:/ /images.idgentertainment.de/images/idgwpgsgp/bdb/2275036/127x.jpg"/></a> Aktuelle News,Spiele-Tests,Previews und Releases for Xbox 360,PlayStation 3 und Vita sowie Nintendo-Systeme auch unterwegs immer dabei:Ab jetzt sind kostenfreie GamePro-Apps im Android Market und iniTunesverfügbar。&lt; img width ='1' height ='1'src ='http://rss.feedsportal.com/c/370/f/5299/s/1cbb8bf0/mf.gif'border ='0'/&gt;&lt; div class ='mf-viral'&gt;&lt; table border ='0'&gt;&lt; tr&gt;&lt; td valign ='middle'&gt;&lt; a href =“http://share.feedsportal.com/viral/sendEmail.cfm?lang=de&title=GamePro-Apps+f%C3%BCr+iOS+und+机器人+ - + +奥夫DEM +智能手机+高达最新+在+ DER +世界报+ DER + Konsolen-免费游戏&安培;链接= HTTP%3A%2F%2Fwww.gamestar.de%2Fnews%2Fvermischtes%2F2564931%2Fgamepro_apps_fuer_ios_und_android.html “target =”_ blank“&gt;&lt; img src =”http://rss.feedsportal.com/images/emailthis2.gif“border =”0“/&gt;&lt; / a&gt;&lt; / td&gt;&lt; td valign ='middle'&gt;&lt; a href =“http://res.feedsportal.com/viral/bookmark_de.cfm?title=GamePro-Apps+f%C3%BCr+iOS+und+Android+-+Auf + DEM +智能手机+高达最新+在+ DER +世界报+ DER + Konsolen-免费游戏&安培;链接= HTTP%3A%2F%2Fwww.ga mestar.de%2Fnews%2Fvermischtes%2F2564931%2Fgamepro_apps_fuer_ios_und_android.html“target =”_ blank“&gt;&lt; img src =”http://rss.feedsportal.com/images/bookmark.gif“border =”0“/&gt ;&lt; / a&gt;&lt; / td&gt;&lt; / tr&gt;&lt; / table&gt;&lt; / div&gt;&lt; br /&gt;&lt; br /&gt;&lt; 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“/&gt;&lt; / a&gt;&lt; img src =”http:/ /da.feedsportal.com/r/126178574663/u/355/f/5299/c/370/s/1cbb8bf0/kg/300/a2t.img"border =“0”/&gt;
那么,有人可以帮忙吗?
答案 0 :(得分:0)
好的,我找到了解决方案。
由于“描述”的格式,它实际上由多个子项组成,所以你只需将这些子项提取到一个Nodelist中并循环遍历它们的内容并解决问题
String bbb = new String();
NodeList desc = element.item(2).getChildNodes();
for(int j = 0;j<desc.getLength();j++){
bbb += desc.item(j).getNodeValue();
}