我想讀雅虎的RSS源,但我無法使其正常工作。代碼是絕對正確的,我確信它。它有時有效,但有時我得到UnknownHostException。可能是什麼原因?我的網絡或其他東西有問題嗎?這是我的代碼: -的UnknownHostException在java中(太只是有時)
public List<RssFeed> getRssFeed() {
try {
List<RssFeed> objList = new ArrayList<RssFeed>();
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse("http://rss.news.yahoo.com/rss/india");
//doc.getDocumentElement().normalize();
Element docElement = doc.getDocumentElement();
NodeList objChannelList = docElement.getChildNodes();
for (int intIndex = 0; intIndex < objChannelList.getLength(); intIndex++) {
if (objChannelList.item(intIndex).getNodeType() == Node.ELEMENT_NODE) {
Element elemItem = (Element) objChannelList.item(intIndex);
NodeList itemList = elemItem.getElementsByTagName("item");
//show only 3 news
int count = itemList.getLength() > 3 ? 3 : objChannelList.getLength();
for (int intSubIndex = 0; intSubIndex < count; intSubIndex++) {
NodeList itemDetailList = itemList.item(intSubIndex).getChildNodes();
String strTitle = ((Node) itemDetailList.item(RSS_VALUES.TITLE.getValue())).getFirstChild().getNodeValue();
String strdescription = ((Node) itemDetailList.item(RSS_VALUES.DESCRIPTION.getValue())).getFirstChild().getNodeValue();
String strLink = ((Node) itemDetailList.item(RSS_VALUES.LINK.getValue())).getFirstChild().getNodeValue();
//System.out.println(strTitle + "\n" + strdescription + "\n" + strLink + "\n\n\n\n");
objList.add(new RssFeed(strTitle, strdescription, strLink));
}
}
}
return objList;
} catch (SAXException ex) {
Logger.getLogger(Utils.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(Utils.class.getName()).log(Level.SEVERE, null, ex);
} catch (ParserConfigurationException ex) {
Logger.getLogger(Utils.class.getName()).log(Level.SEVERE, null, ex);
}
return null;
}
在此先感謝:)。自1個月以來,這個問題一直困擾着我。不知道爲什麼在這種情況下做的Java表現爲按照其情緒:(
一個UnknownHostException被拋出。有些東西在DNS層面沒有解決,這不是java或xml問題。 – 2010-05-25 17:07:35