我正在使用http://theappleblog.com/2008/08/04/tutorial-build-a-simple-rss-reader-for-iphone/
中的SIMPLE RSS阅读示例它使用parseXML加载RSS源。
这是我遇到的问题。对于以下RSS提要示例,我无法将其加载到Feed中。想出一个无法连接的错误。但是在我的Mac RSS阅读器上工作正常,所以我知道链接很好。
有关为何无法加载此特定Feed的任何想法,但它可以加载其他人好吗?
http://www.okstate.com/rss.dbml?db_oem_id=200&media=news
感谢。
答案 0 :(得分:4)
我刚刚发布了open source RSS/Atom Parser for iPhone,希望它可能有用。
我也很乐意听到你的想法!
答案 1 :(得分:2)
根据我的经验,HTML标记会导致RSS解析器在大多数情况下失败。我遇到过这样的问题,我遇到了很多解析器类(寻找最终的解析器,我没找到)
我的猜测是像
这样的实体's
对您的崩溃负责。我的崩溃通常就是这种情况。这也导致我决定创建一个“代理服务器”来预先解析XML,然后再将其发送到iPhone(这给了我缓存,扩展和其他一些东西的优势)。我相信那里有可靠的解决方案,但是很难为这么多RSS实现编写解析器。
P.S:W3C validates此Feed为“有效”,因此它确实是“我们的”问题..
答案 2 :(得分:2)
你的问题可能在于:
要找出是哪种情况,请将Feed文件保存到本地磁盘并通过代码加载,以确保错误发生。
对文件执行二进制搜索以查明特定RSS条目是否导致问题(即删除除第一个rss条目之外的所有条目并查看问题是否存在。如果存在,那么问题就在那里,如果它不会将一半的rss条目放回文件中并重复)
答案 3 :(得分:1)
我一直遇到类似的问题。我还没有确定答案,但我注意到RSS 2比其他人更容易解析。
答案 4 :(得分:1)
有许多RSS源包含无效的XML,通常是因为他们在服务器端使用HTML模板被不熟悉XML的人一起攻击。我看到过不正确的转义(或非转义)HTML帖子内容,缺少关闭标签,嵌套严重的标签等等。
如果您希望能够解析任意提要,则必须清理错误的XML。通常的方法是使用操作系统中包含的“htmlTidy”库。这可以清理XML和HTML。
这个例子你跟随使用NSXMLParser - 我不知道为什么。它是一个较低级别的API,它不支持整理。我建议改用NSXMLDocument。在该API中有一个标志,它将告诉它在解析XML时使用整洁。此API还将XML作为一个易于使用的方便的元素树返回给您。