RSS条目的顺序是否重要?

8
我用Java Rome库创建了一个RSS feed。项目接近尾声。但是我发现一些RSS客户端表现出奇怪的行为。 我认为这更多是由于RSS客户端的问题,但我想确认一下。
Rome将条目保存在List中,因此最新的条目在列表的末尾。 我在我的RSS客户端(Firefox和RSS Bandit)中打开我的feed,并发现它们是倒序的(从技术上讲,这是按时间顺序,但与我使用的顺序相反)。
我认为这是一个RSS客户端的错误(我通常使用Google Reader),但我检查了一些网上的feeds,看到它们正确显示的原因是它们有反向排序的项目(最老的在顶部)。
但XML解析器不应依赖于项目顺序。为什么RSS客户端使用项目顺序而不是日期来对项目进行排序?
最重要的是,我应该重新排序我的项目列表吗?
编辑:我找到了一个简单的解决方案:
     entries.add(0,entry); // :-)

但是关于“正确”的客户端行为的问题仍然存在。

一般的XML解析器肯定应该依赖于节点顺序。例如,可以看看DOM的firstChild - Johannes Hoff
没错。我在处理XML解析器方面是错误的。所以并没有问题。只是评论一下罗马在这方面的设计很差。他们在教程中也有同样的漏洞。 - Maciek Sawicki
2个回答

10

RSS的一个潜在问题是,实际上并没有一个明确定义其领域使用的单一标准。我更关注客户端和服务器实际上似乎在做什么,而不是你认为规范理论上告诉它们要做什么......


0
我有一个问题:这不是客户端的问题吗?你是否为每个项目正确发布了日期?理想情况下,客户端应该使用发布日期进行排序,并且每个项目都应该有一个GUID,以便客户端可以正确地识别它。

我查看了互联网上的几个反向排序的源,我认为客户端忽略了日期。这是我的节点: <entry> <title>Utworzono nową grupę</title> <author> <name /> </author> <updated>2009-12-02T09:29:59Z</updated> <published>2009-12-02T09:29:59Z</published> <summary type="text">Obserwuję teraz grupę: a</summary> dc:date2009-12-02T09:29:59Z</dc:date> </entry> 我认为日期格式正确(我认为罗马库工作正常)。反向排序项目解决了问题。 - Maciek Sawicki
我不同意,stackoverflow并没有反向排序,也有很多其他网站:http://stackoverflow.com/feeds/question/1830580 - Priyank Bolia
对我来说,反向排序看起来像是一种变通方法,而不是解决方案。 - Priyank Bolia
好的,我再次检查了一下。我认为这真的是非常微小的差别。通知将在两种情况下都起作用(我认为这是通过简单的差异完成的)。唯一的区别是在Firefox的预览中的顺序(但是无论如何也没有人使用它)。 - Maciek Sawicki

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