如何使用 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....
我对 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....