好的,首先,我是Android编程的菜鸟。我已经学了一些Java,但我还在学习(不是我们所有人)。 我正在尝试使用源代码格式here并让它正确读取RSS源。目前我有2个问题。我只是陈述第一个,然后发布另一个帖子 一个RSS源显示在我的设备上,它不包括所有细节(描述)。当我通过浏览器加载feed时,我注意到一些引号和撇号变成了“和”。由于某种原因,这会阻止解析器正确解析它。任何帮助都将非常感激。
答案 0 :(得分:0)
我遇到了同样的问题。我使用UTF-8编码进行解析。但在制作ISO-8859-1之后,一切都正常了。 我不能粘贴完整的代码,但只是一个样本,你可以在哪里进行更改如下: 我以前的解析代码是
Xml.parse(feedStream, Xml.Encoding.UTF_8, root.getContentHandler());
之后我将其转换如下:
Xml.parse(feedStream, Xml.Encoding.ISO_8859_1, root.getContentHandler());
答案 1 :(得分:0)
我发现了问题的原因。我不得不在charcters方法中设置一个字符串缓冲区。
public void characters(char ch[] , int start, int length)
{
if (buffering)
buf.append(ch, start, length);
}
一旦我这样做,我只是在存储数据时将stringbuffer分配给“endelement”方法中的字符串。
public void endElement(String namespaceURI, String localName, String qName) throws SAXException
{
String content = buf.toString();
Log.i("RSSReader ",currentstate +" " + content + "]");
switch (currentstate)
{
case RSS_TITLE:
_item.setTitle(content);
buffering = false;
currentstate = 0;
break;
case RSS_LINK:
_item.setLink(content);
buffering = false;
currentstate = 0;
break;
case RSS_DESCRIPTION:
_item.setDescription(content);
buffering = false;
currentstate = 0;
break;
}
之后一切正常。