我想制作一个应用程序(除此之外)可以解析通过网络加载的提要。鉴于标准的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包以在具有有限机制的设备上使用时,这是一个大问题。当然,我必须非常挑剔我依赖什么样的罐子,对吧?我可以继续使用与桌面应用程序相同的类吗?
注意:
答案 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页面中有更多详细信息。