#freeze
[[.NET]]

今さらなネタだけど、たまに使うのよね。

いくつか方法があるけど、簡単にのはここかな?

* 参照追加 [#c138dd78]

System.ServiceModel を追加してね。

* 取得コード [#m699cb4a]

たとえば、こんな感じかな。

 using System.ServiceModel.Syndication;
 using System.Xml;
 
 namespace rssYomiCon1 ※もちろんnamespace名は任意で
 {
    class rssGet1
    {
        public string url = "";
        public string title = "";
        public string description = "";
        public List<rssData> rssget(string urlx)
        {
            List<rssData> r = new List<rssData>();
            url = urlx;
            using (XmlReader rdr = XmlReader.Create(url))
            {
                SyndicationFeed feed = SyndicationFeed.Load(rdr);
                title = feed.Title.Text;
                description = feed.Description.Text;
                foreach (SyndicationItem item in feed.Items)
                {
                    rssData rd = new rssData();
                    rd.title = item.Title.Text;
                    rd.desctipsion = item.Summary.Text;
                    rd.timestamp = item.PublishDate.LocalDateTime;
                    rd.link = (item.Links.Count > 0 ? item.Links[0].Uri.AbsolutePath : "");
                    r.Add(rd);
                }
            }
            return (r);
        }
    }
  
    class rssData
    {
        public string title;
        public string desctipsion;
        public DateTime timestamp;
        public string link;
    }
}

うん。実際に使う時は、こんな感じで。

            rssGet1 rss = new rssGet1();
            List<rssData> ro = rss.rssget("どこかのRSSのURL");

            Console.WriteLine("Title:{0}",rss.title);
            Console.WriteLine("Title:{0}", rss.description);

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS