如何使用SyndicationFeed从Atom订阅源检索链接并限制项目数

时间:2016-03-04 22:31:09

标签: c# asp.net atom-feed rss-reader syndicationfeed

我对asp.net有点新意,所以请耐心等待......

我正在尝试从WordPress网站阅读并显示Atom供稿。

通过网络搜索,我能够在Codebehind中整理以下代码:

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)检索链接....

查看MSDN上的SyndicationFeed帖子我可以看到有一个Links属性,但我无法弄清楚如何从Feed中检索<link>。任何人都知道如何获得这个?

2)限制输出数量......

现在,使用foreach(),它会显示Feed中的每个条目。任何想法如何限制它只显示最新的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);

}

1 个答案:

答案 0 :(得分:0)

  
      
  • 我有什么想法可以限制它只显示最新 x号码?
  •   
  • 检索SyndicationLink
  • 的集合   

你可以(根据需要改进/无效检查等):

//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);

    ....
}

H个....