このチュートリアルhttp://techiedreams.com/android-simple-rss-reader/に従って、RSSリーダーアプリケーションを開発しています。しかし、ブロガーの RSS リンク (このhttp://blogname.com.br/feeds/posts/default?alt=rssなど) を配置すると、機能しません。この形式の他のリンク www.site.com/index.php?format=feed&type=rss は完全に機能します。どれが問題になる可能性がありますか? 以下はパーサークラスに従います。
public class DOMParser {
private RSSFeed feed = new RSSFeed();
public RSSFeed parseXML(String xml) {
URL url = null;
try {
url = new URL(xml);
} catch (MalformedURLException e1) {
e1.printStackTrace();
}
try {
//Criar as instâncias necessárias
DocumentBuilderFactory dbf;
dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
//Passa o xml
Document doc = db.parse(new InputSource(url.openStream()));
doc.getDocumentElement().normalize();
//Pega todas as tags
NodeList nl = doc.getElementsByTagName("item");
int length = nl.getLength();
for (int i = 0; i < length; i++) {
Node currentNode = nl.item(i);
RSSItem item = new RSSItem();
NodeList nchild = currentNode.getChildNodes();
int clength = nchild.getLength();
//Pegar os elementos requeridos de cada item
for (int j = 1; j < clength; j = j + 2) {
Node thisNode = nchild.item(j);
String theString = null;
String nodeName = thisNode.getNodeName();
theString = nchild.item(j).getFirstChild().getNodeValue();
if (theString != null) {
if ("title".equals(nodeName)) {
// O valor do nó é "title", então devemos "setar"
// o valor do titulo de RSSItem
item.setTitle(theString);
} else if ("description".equals(nodeName)) {
item.setDescription(theString);
//Passa a descrição html para getar a url da imagem
String html = theString;
org.jsoup.nodes.Document docHtml = Jsoup
.parse(html);
Elements imgEle = docHtml.select("img");
item.setImage(imgEle.attr("src"));
} else if ("pubDate".equals(nodeName)) {
// We replace the plus and zero's in the date with
// empty string
String formatedDate = theString.replace(" +0000","");
item.setDate(formatedDate);
}
}
}
//adiciona elemento a lista
feed.addItem(item);
}
} catch (Exception e) {
}
//Retorna um objeto de RSSFeed, depois que todos os elementos foram adicionados a lista
return feed;
}
}
どうもありがとう、そしてとても下手な英語でごめんなさい。