我正在尝试使用SyndicationFeed
类创建一个简单的RSS阅读器。
有一些标准代码,例如<title>
,<link>
,<description>
......它们没有任何问题。
但还有一些其他标签。例如,在WordPress创建的this feed中,有<content:encoded>
个标记。我认为其他网站的内容部分可能还有其他标签。正确?
我想知道,如何找到每个帖子的主要内容,有没有标准?我应该找哪些标签?
(例如,某个网站可能会使用<content:encoded>
但其他一些网站只能使用<description>
或某人使用其他标准...我不知道如何检索主< / strong>帖子的内容)
P.S:我正在使用此代码测试我的简单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;
答案 0 :(得分:3)
答案 1 :(得分:0)
取决于您想要支持的内容。内容元素不是RSS2.0的一部分,但属于Atom(rss 4287)。
阅读RSS2.0规范http://cyber.law.harvard.edu/rss/rss.html#hrelementsOfLtitemgt 阅读Atom规范http://tools.ietf.org/html/rfc4287
答案 2 :(得分:0)
我找到了Argotic联合框架(感谢JoeEnos)。
Argotic有许多扩展,可用于处理非标准的元素。
例如,您可以使用Argotic.Extensions.Core.SiteSummaryContentSyndicationExtension
来检索<content:encoded>
。您可以看到示例here。 (如果该示例为内容返回null
,则应使用MyRssItem.Description
)
其他一些有用的扩展程序是WellFormedWebCommentsSyndicationExtension
(用于检索评论供稿网址)和SiteSummarySlashSyndicationExtension
(用于检索评论计数)。