构建简单的RSS阅读器,检索内容
我正在尝试使用SyndicationFeed
类创建一个简单的RSS阅读器。
有一些标准标签,如
, ,
……它们没有问题。
但是还有其他一些标签。 例如,在由WordPress创建的此Feed中 ,有标记。 我认为其他网站的内容部分可能还有其他标签。 对?
我想知道,如何找到每个post的主要内容,有没有标准? 我应该寻找哪些标签?
(例如,一个站点可能使用但是其他一些只使用
或者有人使用另一个标准…我不知道如何检索post的主要内容)
PS:我正在使用此代码测试我的简单RSS阅读器:
var reader = XmlReader.Create("http://feed.2barnamenevis.com/2barnamenevis"); var feed = SyndicationFeed.Load(reader); string s = ""; foreach (SyndicationItem i in feed.Items) { s += i.Title.Text + "
" + i.Summary.Text + "
" + i.PublishDate.ToString() + "
"; foreach (SyndicationElementExtension extension in i.ElementExtensions) { XElement ele = extension.GetObject(); s += ele.Name + " :: " + ele.Value + "
"; } s += "
"; } return s;
根据我们在评论中的讨论,我可能建议与第三方供应商合作,而不是从头开始构建它 – Argotic和RSS.NET看起来都很有希望。
我找到了Argotic Syndication Framework(感谢JoeEnos)。
Argotic有许多扩展,可用于处理非标准的元素。
例如,您可以使用Argotic.Extensions.Core.SiteSummaryContentSyndicationExtension
来检索
。 你可以在这里看到一个例子。 (如果该示例为内容返回null
,则应该只使用MyRssItem.Description
)
其他一些有用的扩展是WellFormedWebCommentsSyndicationExtension
(用于检索注释feed url)和SiteSummarySlashSyndicationExtension
(用于检索注释计数)。
取决于你想要支持的内容。 内容元素不是RSS2.0的一部分,而是属于Atom(rss 4287)。
阅读RSS2.0规范http://cyber.law.harvard.edu/rss/rss.html#hrelementsOfLtitemgt阅读Atom规范http://tools.ietf.org/html/rfc4287