从ASP.NET中的RSS源序列化数据

时间:2010-05-20 20:45:25

标签: c# asp.net rss

我希望用户指定RSS源地址并从中序列化信息。我对XML格式不感兴趣,但是从XML填充强类型对象。我的问题是,是否有一个标准,所有RSS源支持(所有这些都有日期,标题等)?如果是这样,是否有描述这个的XSD。如果没有,我如何处理序列化ASP.NET中对象的RSS源?

编辑: SyndicationFeed的项目具有以下属性:

  • Title.Text - >给我们标题
  • Summary.Text - >给出摘要

Q1 - 摘要包含html标签。剥离它们有办法吗?我只对文本感兴趣 Q2 - 所有RSS源在Summary元素中是否包含完整内容?我看到一些RSS提要只有几行用于摘要,而其他RSS提供了帖子的全部内容。感谢

6 个答案:

答案 0 :(得分:3)

如果您引用System.ServiceModel.Web,则有一些选项可以将提取提取到强类型对象

using (var reader = XmlReader.Create(@"http://newsrss.bbc.co.uk/rss/newsonline_world_edition/front_page/rss.xml"))
{
    var feed = SyndicationFeed.Load(reader);
    if (feed != null)
    {
        foreach (var item in feed.Items)
        {
            Console.WriteLine(item.Title.Text);
        }
    }
}

答案 1 :(得分:0)

是RSS是标准格式。

如果您搜索“C#RSS阅读器”,您会发现许多辅助对象的实现,可以从Feed中获取信息。

您可以使用Linq to XML直接从XML获取信息。 Scott Guthrie在他的博客his blog.

中向您展示了这一点

答案 2 :(得分:0)

.NET Framework 3.5版提供了读取提要的类。 This文章介绍了如何操作。

如果你没有使用3.5,那么你可以试试Atom.NET(注:最后更新6年前)。

答案 3 :(得分:0)

目前,W3C的标准是RSS 2.0。 RSS分别为0.91,0.92和2.0。

使用.Net RSS.Net总是派上用场。

答案 4 :(得分:0)

我建议你看看Argotic框架。非常容易和有用,洗澡消费和生产RSS feed。

答案 5 :(得分:0)

您可以使用以下功能:

    public object getRSS(string url)
{
    XDocument feedXML = XDocument.Load(url);
    var feeds = from feed in feedXML.Descendants("item")
                select new
                {
                    Title = feed.Element("title").Value,
                    Link = feed.Element("link").Value,
                    Description = feed.Element("description").Value,
                };

    return feeds;
}