0

我正在为我的一个客户编写一个 Android 应用程序,它将显示他的 RSS 提要。他有 2 个不同的提要。其中之一与我使用示例编写的代码完美配合。当我用他的第二个提要替换 URL 时,我到处都得到随机换行符(特别是在左括号 < 之后和右括号 < 之前)。

这是工作提要的链接 - http://prgk.ca/wD

这是似乎无法使用相同代码正确解析的 rss 提要 - http://prgk.ca/ps


这是来自 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): >

这是显示问题的屏幕截图。在这个特殊的例子中,来自 <link></link> 标签的 URL 被拆分在一个奇怪的地方,所以部分 URL 丢失了,而我从 <description></description> 标签得到的只是“< "什么时候应该有整篇文章

手机截图

4

1 回答 1

1

我最终解决了这个问题。在我的 RSSHandler 类中,我注释掉了重置状态的部分

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();
}

它可能不是最好的解决方案,但它最终对我来说完美无缺!

于 2012-08-25T04:14:03.830 回答