什么是最广泛使用的Android的feed解析库

时间:2010-01-05 17:11:25

标签: java android

我想制作一个应用程序(除此之外)可以解析通过网络加载的提要。鉴于标准的Android + Core Java库不提供feed解析器服务而且我不想自己编写一个,你可以提名一个Java feed解析器,它可以在低规格的Android设备上运行。

我刚开始学习Android,完成了Hello World示例,我想转到我的第一个应用程序。我想做一些解析一些ATOM或RSS提要并在GridView中显示一些内容的东西。

在Android中,UI的内容似乎已经很好地记录了,并且Sun有很多关于如何检索URL的示例,但是我不是那么如何进行feed解析。

以前当我在Pythion中做过这种事情时,我使用了一个通用的feed解析器,可以解析几乎任何东西(例如RSS,ATOM)。有很多很好的Python实现这种东西,但是我没有发现像这样的标准Android库的一部分。

在工作中,我已经完成了(轻)维护企业Java应用程序。通常的做法似乎是采取你喜欢的任何类(例如Jakarta Commons feed-parser)并简单地将它们捆绑到CLASSPATH中。桌面应用程序并不关心依赖性有多大,但是我确信在编译APK包以在具有有限机制的设备上使用时,这是一个大问题。当然,我必须非常挑剔我依赖什么样的罐子,对吧?我可以继续使用与桌面应用程序相同的类吗?

注意:

  • 我的背景是Python(只有轻微的Java经验)
  • 理想情况下,我想使用一些流行的东西(不是最好的东西),所以我可以得到它的支持。
  • 更好的是,我想使用内置库功能,所以我不必添加任何第三方Jars来膨胀我的应用程序。
  • 目前定位到Android 1.5(因为这是我的设备运行的)

5 个答案:

答案 0 :(得分:3)

由于RSS / Atom提要本质上是XML文档,因此您可以使用SAXParser,它是Android附带的标准Java库的一部分。

答案 1 :(得分:2)

Rome似乎是最受欢迎的java RSS库之一。我想它也可以在Android上使用。

答案 2 :(得分:0)

设置SAX解析器的实现相当容易,但困难的部分是能够在太阳下解析任何和每个Feed。

您需要迎合所有格式RSS 1,RSS 2,Atom等。即使这样,您也必须应对格式不佳的Feed。

我过去遇到过类似的问题所以决定在服务器上进行feed解析,然后获取解析后的内容。这允许我运行更复杂的库和解析器,我可以在不推送应用程序更新的情况下进行修改。

我在AppEngine上运行了以下服务,它允许在您的末尾进行更简单的XML / JSON解析。响应有一个固定而简单的结构。您可以使用它来解析

http://evecal.appspot.com/feedParser

您可以使用以下参数发送POST和GET请求。

feedLink:RSS提要响应的URL:JSON或XML作为响应格式

示例:

对于POST请求

curl --data-urlencode“feedLink = http://feeds.bbci.co.uk/news/world/rss.xml”--data-urlencode“response = json”http://evecal.appspot.com/feedParser

对于GET请求

evecal.appspot.com/feedParser?feedLink=http://feeds.nytimes.com/nyt/rss/HomePage&response=xml

我的Android应用程序“NewsSpeak”也使用它。

答案 3 :(得分:0)

检查轻量级Android库,以便在https://github.com/ahorn/android-rss中阅读部分RSS 2.0供稿。我不知道是否是最受欢迎的Android库,但它看起来不错。我还没有尝试过。

答案 4 :(得分:0)

我写的这个新的RSS库: https://github.com/Pkmmte/PkRSS

它非常轻巧,高效,快速,可定制,而且非常易于使用。例如,以下代码在后台线程中加载和解析您的RSS提要:

PkRSS.with(this).load(url).async();

简单,对吗? GitHub页面中有更多详细信息。