週末に時間が取れたので再開しました。
private void button1_Click(object sender, EventArgs e) { // RSSフィードを読み込む // アドレス指定 string url = "http://news.yahoo.co.jp/pickup/computer/rss.xml"; getRssDataTest(url); } public void getRssDataTest(string linkUrl) { // 指定アドレスの読み込み XDocument doc = XDocument.Load(linkUrl); // LINQで取り出し(今後ラムダ式で置き換えられないか検討) var elemSel = from e in doc.XPathSelectElements("/rss/channel/item") select new { title = (string)e.Element("title").Value, url = (string)e.Element("link").Value, pubDate = (string)e.Element("pubDate").Value }; // FeedItemクラスに格納 foreach (var elem in elemSel) { textBox1.Text += "Title:" + elem.title + "\r\n" + "Url:" + elem.url + "\r\n" + elem.pubDate + "\r\n"; FeedItem feedItems = new FeedItem(); feedItems.Title = elem.title; feedItems.Url = elem.url; feedItems.PubDate = elem.pubDate; } }
XML形式で各エレメントの取り出しができるようになりました。LINQはかなり便利です。デリゲートとか使えればもっとすっきりしそうなのですが、今日はここまでです。