我正在尝试创建我的第一个 Rss 阅读器,但我遇到了问题。我有一个类,其方法返回一个提要列表。
public ArrayList<FeedsItem> getFeedList()
{
final FeedsItem fi = new FeedsItem(Const.appDebugMode);
final ArrayList<FeedsItem> fl = new ArrayList<FeedsItem>();
/**
* xml parse elements
*/
RootElement root = new RootElement("rss");
Element channel = root.getChild("channel");
Element item = channel.getChild("item");
item.setEndElementListener(new EndElementListener()
{
@Override
public void end()
{
fl.add(fi.getCopy());
}
});
item.getChild("title").setEndTextElementListener(new EndTextElementListener()
{
@Override
public void end(String body)
{
fi.setTitle(body);
}
});
item.getChild("link").setEndTextElementListener(new EndTextElementListener()
{
@Override
public void end(String body)
{
fi.setLink(body);
}
});
item.getChild("description").setEndTextElementListener(new EndTextElementListener()
{
@Override
public void end(String body)
{
fi.setDescr(body);
}
});
item.getChild("pubDate").setEndTextElementListener(new EndTextElementListener()
{
@Override
public void end(String body)
{
fi.setPubDate(body);
}
});
item.getChild("guid").setEndTextElementListener(new EndTextElementListener()
{
@Override
public void end(String body)
{
fi.setGuid(body);
}
});
/**
* парсим feed
*/
try
{
Xml.parse(this.getInputStream(), Xml.Encoding.UTF_8, root.getContentHandler());
} catch (Exception e)
{
new FeedsParserWriteLog(Const.appDebugMode)
.WriteLog("FeedsParcer getFeed (parse xml) err= \n"+e.getLocalizedMessage());
throw new RuntimeException(e);
}
return fl;
}
当我处理文件格式 rss 2.0 - 一切正常(如此链接http://news.yandex.ru/software.rss)当我处理文件格式原子时(如此链接http://ithappens.ru/rss/ )-我有一个问题 错误:第 xxx 行第 xxx 列:格式不正确(无效令牌)
我如何处理这两种格式?如何重写处理 2 种格式的方法?
谢谢