我正在尝试使用SyndicationFeed类从提要中获取内容,但对于某些提要,它工作得很好,但对于其他提要,它就不行了。
例如,当我想从http://www.alistapart.com/site/rss获取提要时,对于所有提要项和提要本身,LastUpdatedTime的值为01-01-0001。
有什么我需要做的吗?或者,也许SyndicationFeed并不支持所有的网站读取所有的信息?
我正在使用的一些示例代码:
var feed = SyndicationFeed.Load(XmlReader.Create("http://www.alistapart.com/site/rss"));
var feedPosts = feed.Items; // here all feedPosts have the invalid LastUpdatedTime, but if i go to the website i can see that there is actually one发布于 2011-03-08 00:26:19
您看到的是LastUpdatedTime,而您提到的RSS中的日期既不是LastUpdatedTime,也不是更常见的日期pubDate。注意名称空间是"http://purl.org/dc/elements/1.1/"。
这些元素中的大多数都是可选的,您必须能够在没有它们的情况下生活,或者使用替代的元素。
我创建了一个播客软件,我发现SyndicationFeed的实现非常糟糕,在处理现实世界中存在的各种日期时非常脆弱。
更新
有没有一种方法可以使用框架的类来解析这个非标准属性?
是的,看看Element Extensions吧。
https://stackoverflow.com/questions/5221791
复制相似问题