【发布时间】:2015-01-11 17:29:42
【问题描述】:
我正在尝试创建我的第一个 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/)- 我有一个问题error : line xxx column xxx:not well-formed (invalid token)
我如何处理这两种格式?如何重写处理两种格式的方法?
谢谢
【问题讨论】:
-
如何检查字符集?
标签: android xml xml-parsing