Java 为什么Android解析XML不正确?
我正在为我的一个客户端编写一个Android应用程序,它将显示他的RSS提要。他有两种不同的饲料。其中一个可以完美地使用我使用示例编写的代码。当我用他的第二个提要替换URL时,到处都会出现随机换行(特别是在开始括号<之后和结束括号<之前) 这是指向工作提要的链接- 下面是一个rss提要,它似乎无法使用相同的代码正确解析-Java 为什么Android解析XML不正确?,java,android,xml,rss,Java,Android,Xml,Rss,我正在为我的一个客户端编写一个Android应用程序,它将显示他的RSS提要。他有两种不同的饲料。其中一个可以完美地使用我使用示例编写的代码。当我用他的第二个提要替换URL时,到处都会出现随机换行(特别是在开始括号
下面是logcat中的一个示例。你可以看到,由于某种原因,每一个
08-19 09:43:46.444: I/RSSReader(6045): Get the Android App to know when your advisor is available!
08-19 09:43:46.444: I/RSSReader(6045): http://www.keen.com/CommunityServer/UserBlogPosts/r00tman/Get-the-Android-App-to--know-when-your-
08-19 09:43:46.452: I/RSSReader(6045): advisor-is-available/624194.aspx
08-19 09:43:46.452: I/RSSReader(6045): Thu, 16 Aug 2012 19:39:00 GMT
08-19 09:43:46.452: I/RSSReader(6045): 8ca05964-da1c-4176-9dbc-9d0bc609bb83:624194
08-19 09:43:46.452: I/RSSReader(6045): r00tman
08-19 09:43:46.452: I/RSSReader(6045): 0
08-19 09:43:46.452: I/RSSReader(6045): http://www.keen.com/CommunityServer/blogs/642011/comments/624194.aspx
08-19 09:43:46.452: I/RSSReader(6045): http://www.keen.com/CommunityServer/blogs/642011/commentrss.aspx?PostID=624194
08-19 09:43:46.452: I/RSSReader(6045): http://www.keen.com/CommunityServer/blogs/rsscomments/624194.aspx
08-19 09:43:46.452: I/RSSReader(6045): <
08-19 09:43:46.452: I/RSSReader(6045): a href="http://majesticvision.com/downloads/android/love-tarot.apk"
08-19 09:43:46.452: I/RSSReader(6045): >
08-19 09:43:46.452: I/RSSReader(6045): <
08-19 09:43:46.452: I/RSSReader(6045): img src="http://www.majesticvision.com/keen/2012-08-16_App-Shot.png" height="75" width="385" /
08-19 09:43:46.460: I/RSSReader(6045): >
08-19 09:43:46.460: I/RSSReader(6045): <
08-19 09:43:46.460: I/RSSReader(6045): /a
08-19 09:43:46.460: I/RSSReader(6045): >
08-19 09:43:46.460: I/RSSReader(6045): <
08-19 09:43:46.460: I/RSSReader(6045): br /
08-19 09:43:46.460: I/RSSReader(6045): >
08-19 09:43:46.460: I/RSSReader(6045): <
08-19 09:43:46.460: I/RSSReader(6045): br /
08-19 09:43:46.460: I/RSSReader(6045): >
08-19 09:43:46.444:I/RSSReader(6045):让Android应用程序知道你的顾问何时可用!
08-19 09:43:46.444:I/RSSReader(6045):http://www.keen.com/CommunityServer/UserBlogPosts/r00tman/Get-the-Android-App-to--know-when-your-
08-19 09:43:46.452:I/RSSReader(6045):顾问可用/624194.aspx
08-19 09:43:46.452:I/RSSReader(6045):2012年8月16日星期四格林威治标准时间19:39:00
08-19 09:43:46.452:I/RSSReader(6045):8ca05964-da1c-4176-9dbc-9d0bc609bb83:624194
08-19 09:43:46.452:I/RSSReader(6045):r00tman
08-19 09:43:46.452:I/RSSReader(6045):0
08-19 09:43:46.452:I/RSSReader(6045):http://www.keen.com/CommunityServer/blogs/642011/comments/624194.aspx
08-19 09:43:46.452:I/RSSReader(6045):http://www.keen.com/CommunityServer/blogs/642011/commentrss.aspx?PostID=624194
08-19 09:43:46.452:I/RSSReader(6045):http://www.keen.com/CommunityServer/blogs/rsscomments/624194.aspx
08-19 09:43:46.452:I/RSSReader(6045):<
08-19 09:43:46.452:I/RSSReader(6045):a href=”http://majesticvision.com/downloads/android/love-tarot.apk"
08-19 09:43:46.452:I/RSSReader(6045):>
08-19 09:43:46.452:I/RSSReader(6045):<
08-19 09:43:46.452:I/RSSReader(6045):img src=”http://www.majesticvision.com/keen/2012-08-16_App-Shot.png“height=“75”width=“385”/
08-19 09:43:46.460:I/RSSReader(6045):>
08-19 09:43:46.460:I/RSSReader(6045):<
08-19 09:43:46.460:I/RSSReader(6045):/a
08-19 09:43:46.460:I/RSSReader(6045):>
08-19 09:43:46.460:I/RSSReader(6045):<
08-19 09:43:46.460:I/RSSReader(6045):br/
08-19 09:43:46.460:I/RSSReader(6045):>
08-19 09:43:46.460:I/RSSReader(6045):<
08-19 09:43:46.460:I/RSSReader(6045):br/
08-19 09:43:46.460:I/RSSReader(6045):>
这是一个显示问题的屏幕截图。在这个特殊的例子中,标记中的URL被分割到一个奇怪的位置,因此URL的一部分丢失了,而我从
public void characters(char ch[], int start, int length) {
String theString = new String(ch, start, length);
switch (currentstate) {
case RSS_TITLE:
_item.setTitle(theString);
// currentstate = 0;
break;
case RSS_LINK:
_item.setLink(theString);
// currentstate = 0;
break;
case RSS_DESCRIPTION:
_item.setDescription(theString);
// currentstate = 0;
break;
case RSS_CATEGORY:
_item.setCategory(theString);
// currentstate = 0;
break;
case RSS_PUBDATE:
_item.setPubDate(theString);
// currentstate = 0;
break;
default:
return;
}
然后在我的RSSitem类中,我将字符串添加到自身中,而不是每次都重置它
void setDescription(String description) {
_description = _description + Html.fromHtml(description).toString();
}
这可能不是最好的解决方案,但它最终对我来说效果非常好!这可能是个问题吗?如果您提供一个示例,它会有所帮助。两个提要都嵌入了大量HTML。第一个提要将所有HTML嵌入
标记中。这似乎很有效。第二个提要对所有HTML进行编码,因此您可以获得大量HTML“&;nbsp;br/
“。你在解码第二个HTML吗?你们从哪里得到随机的换行符?对不起,伙计们,我意识到我应该展示一个例子。我在logcat中添加了一部分,显示在每次