如何使用 SyndicationFeed 从 Atom 提要中检索 Link 并限制项目数量

How to retrieve Link from Atom feed using SyndicationFeed and limiting number of items

我对 asp.net 有点陌生所以请多多包涵...

我正在尝试读取和显示来自 WordPress 站点的 Atom 提要。

搜索网络,我能够将以下代码放在代码隐藏中:

XmlReader reader = XmlReader.Create(myURL);
SyndicationFeed feed = SyndicationFeed.Load(reader);

foreach (var item in feed.Items)
{

    Response.Write(item.PublishDate.ToString("yyyy-MM-dd hh:mm tt"));
    Response.Write("<br/>");
    Response.Write(item.Title.Text);

}

reader.Close();

这非常适合显示日期和时间。下面是我需要解决的问题:

1) 检索 Link.....

查看 MSDN 上的 SyndicationFeed 帖子,我可以看到有一个 Links 属性,但我不知道如何检索 <link> 来自提要。任何人都知道如何得到这个?

2)限制输出个数...

现在,foreach() 它会显示提要中的每个条目。有什么想法可以限制它只显示最新的 x 号吗?

我可以做类似...

while (var item in feed.Items < 5)
{

    Response.Write(item.PublishDate.ToString("yyyy-MM-dd hh:mm tt"));
    Response.Write("<br/>");
    Response.Write(item.Title.Text);

}
  • Any ideas how I can limit it to only show the newest x number?
  • retrieving the collection of SyndicationLink

您可以(改进 needed/null 检查等):

//Newest by date/time and take x (e.g. 5)
foreach (var item in feed.Items.OrderByDescending(i => i.PublishDate).Take(5))
{
     //Get the Uris from SyndicationLink
     var theLinks = item.Links.Select(l => l.Uri.ToString()).ToList();

     //do something with them....
     var foo = string.Join(",", theLinks);

    ....
}

Hth....