今さらなネタだけど、たまに使うのよね。
いくつか方法があるけど、簡単にのはここかな?
System.ServiceModel を追加してね。
たとえば、こんな感じかな。
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);