代码改变世界

C# 抓取远程的 RSS 信息

2012-12-18 19:00  音乐让我说  阅读(393)  评论(0编辑  收藏  举报

直接贴代码了:

[Serializable]
public class RssItem
{
    public string Description { get; set; }

    public string Link { get; set; }

    public DateTime PublishedDate { get; set; }

    public string RssImage { get; set; }

    public string Title { get; set; }
}




using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Xml;
using System.Xml.Linq;

namespace MvcUI.Extensions
{
    public class RssReader
    {
        public List<RssItem> GetRssFeed(string url)
        {
            var req = (HttpWebRequest)WebRequest.Create(url);
            req.Method = "GET";
            req.UserAgent = "Fiddler";

            var rep = req.GetResponse();
            var reader = XmlReader.Create(rep.GetResponseStream());
            var doc = XDocument.Load(reader, LoadOptions.None);

            return (from i in doc.Descendants("channel").Elements("item")
                    select new RssItem
                    {
                        Title = i.Element("title").Value,
                        Link = i.Element("link").Value,
                        Description = i.Element("description").Value,
                        PublishedDate = i.Element("pubDate").Value.TryConvertToDateTime()
                    }).ToList();
        }
    }
}

 

谢谢浏览!