iPhone应用中解析RSS/Atom源的最佳方法是什么?

15

所以我了解到,就解析纯XML而言,有几个选择可用:NSXMLParser、TouchCode的TouchXML等。这些都很好,并且对我来说似乎可以正常工作。

真正的问题在于,RSS源(以及Atom源)存在许多小变化,因此支持在互联网上提供的所有可能的源的各种组合变得非常难以管理。我搜索了一下是否有一个库可以为我处理所有这些低级细节,但是没有找到任何东西。

由于可以在Objective-C中链接到外部的C/C++库,我想知道是否有适合这个任务的库?肯定已经有人创建了像这样的东西,只是很难从谷歌的成千上万的结果中找到“正确”的选项。

无论如何,在iPhone应用程序中解析RSS/Atom源的最佳方法是什么?


你的意思是想要类似于Abdera(http://cwiki.apache.org/confluence/display/ABDERA/Creating+and+Consuming+Atom+Documents)这样的Cocoa框架,对吗? - tcurdt
就像我说的那样,我想要一个能够处理Objective-C中的RSS和Atom订阅的东西。 - jpm
10个回答

12
我刚刚发布了一个开源的RSS/Atom解析器,适用于iPhone。希望它能对您有所帮助。在此处可以找到该项目。
我很乐意听取您对此的想法!

6
"最好"是相对的。如果您需要最佳性能,则需要使用SAX方法并实现处理程序。我不知道是否有任何开源可用的内容(可以开始一个Google Code项目并发布给我们其他人使用!)
无论您做什么,都不建议尝试将整个XML文件加载到内存中并像DOM一样操作它。很可能您会收到比设备处理能力更大的订阅,导致频繁的内存警告和崩溃。

3

我目前正在尝试使用Michael Waterfall开发的MWFeedParser。

它很容易设置和使用(我是一名初级iPhone开发者)。

他提供的使用MWFeedParser填充UITableViewController实现的示例代码也很有帮助。


2

看一下苹果的XML性能示例--它指向直接使用libXML--以获得更快的性能和更新显示。如果您正在处理非常大的数据源,这可能非常重要。


1

请查看我的 Atom 订阅解析库 (BSAtomParser) ,它位于 GitHub 上。它不关心验证订阅,而是尽力返回所有有效的内容。该解析器涵盖了 RFC 4287 的大部分规范,甚至包括扩展。


1

0

可能是你的一个合理起点。Atom支持还没有到位,但你可以帮忙吗?


0

我在我的问题中提到了Touchcode,但是正如我所说,我想要一个RSS/Atom订阅源框架/库,这样我就可以避免自己处理不同版本的RSS/RDF/Atom等逻辑。 - jpm

0
今天我在SourceForge上看到了igasus项目。我还没有使用过它,也没有真正地检查过它,但或许它有所帮助。
从他们的网站上得知:
igasus是为iPhone提供网络服务的,允许RSS聚合以iPhone友好的格式进行传送。

0
其实,我想建议你在TouchCode讨论版上提问,因为我记得有人试图扩展它以支持RSS。那可能是一个不错的起点。但是我被我妻子催促着走了。
但是我现在看到TouchCode没有讨论版。我仍然会问作者,他可能知道那个努力的结果如何。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接