构建一个简单的RSS阅读器,检索内容
本文关键字:检索 RSS 简单 一个 构建 | 更新日期: 2023-09-27 18:36:58
我正在尝试使用SyndicationFeed
类制作一个简单的RSS阅读器。
有一些标准标签,如<title>
、<link>
、<description>
...他们没有问题。
但是还有其他一些标签。 例如,在这个由WordPress创建的提要中,有<content:encoded>
标签。我认为其他网站的内容部分可能还有其他标签。右?
想知道,如何找到每个帖子的主要内容,有什么标准吗?我应该寻找哪些标签?
(例如,一个网站可能使用<content:encoded>
但其他一些网站只是使用<description>
或者有人使用其他标准......我不知道该怎么做才能检索帖子的主要内容)
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 + "<br />" + i.Summary.Text + "<br />" + i.PublishDate.ToString() + "<br />";
foreach (SyndicationElementExtension extension in i.ElementExtensions)
{
XElement ele = extension.GetObject<XElement>();
s += ele.Name + " :: " + ele.Value + "<br />";
}
s += "<hr />";
}
return s;
从我们在评论中的讨论来看,我可能会建议使用第三方供应商,而不是从头开始构建它 - Argotic 和 RSS.NET 看起来都很有前途。
取决于你想要支持的内容。内容元素不是 RSS2.0 的一部分,而是 Atom (rss 4287) 的一部分。
阅读 RSS2.0 规范 http://cyber.law.harvard.edu/rss/rss.html#hrelementsOfLtitemgt阅读 Atom 规格 https://www.rfc-editor.org/rfc/rfc4287
我找到了Argotic Syndication Framework(感谢JoeEnos)。
Argotic有许多扩展,可用于处理非标准元素。
例如,您可以使用Argotic.Extensions.Core.SiteSummaryContentSyndicationExtension
检索<content:encoded>
。您可以在此处查看示例。(如果该示例返回内容的null
,则只需使用 MyRssItem.Description
)
其他一些有用的扩展是WellFormedWebCommentsSyndicationExtension
(用于检索评论源 url)和SiteSummarySlashSyndicationExtension
(用于检索评论计数)。