构建一个简单的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;

构建一个简单的RSS阅读器,检索内容

从我们在评论中的讨论来看,我可能会建议使用第三方供应商,而不是从头开始构建它 - 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(用于检索评论计数)。