如何标记RSS项目“已过期”?

时间:2009-08-29 02:32:13

标签: rss

我正在处理(winapp中的网页/ RSS提要/表单)以显示当前系统状态和最新更新。

我想知道何时解决了未解决的问题,以便可以通过删除来绘制。这将让用户知道问题已解决,但请将其保留在列表中。我知道删除它会更容易,但我希望用户看到它已经解决了。

我没有看到任何RSS或ATOM标准的“过期日期”,但我学到的一件事是,另一组(或许多组)的眼睛可以以不同的方式阅读。如果不存在expires标签,我会找到另一种方法来获取网络和winform的信息,但RSS fead读者可能无法正确显示它。

3 个答案:

答案 0 :(得分:1)

D'哦!

感谢大卫的评论,我转而采用“会计”模式。

  

这个想法是,一旦项目的表示出现在RSS提要中,它将永远是一个准确的表示

这与会计交易相匹配。您永远不会更改帐户余额。您添加(从不删除)事务以修改结果余额。

ATOM的标记可用于将更新绑定回原始条目。

在对RSS和ATOM读者进行一些研究的同时,我不断发表关于更新标签未被尊重的评论。 (读者未重新阅读更新的项目,并始终显示旧版本)

所有这一切。在某些未来的版本或RSS和/或ATOM中可能有一种方法可以指示某些内容已过时且信息可能不再有用。我的一个小小的烦恼,其网站发送一个指向已被移动或删除的文章的Feed项。

答案 1 :(得分:1)

您可以使用Microsoft Simple Sharing Extensions指定Feed是完整列表,不包含任何内容,但不存在。

还有Atom Tombstones draft

为了向后兼容,您只需使用已过期的信息更新项目。

我会使用Atom - 根据我的经验,聚合器对Atom的<id>更加尊重,并且在标题更改时不会重复项目。

答案 2 :(得分:0)

我不知道那些规格中的任何东西(尽管我再次看了一眼,只是为了确定)。

可能是一个有点粗糙(但非常跨平台)的解决方案:

if ($status == 'expired') {
 $title = 'EXPIRED! ' . $title;
 $body = '*** EXPIRED! ***' . $body . '*** EXPIRED! ***';
}