意外となんとかなる日記

世迷言を心に、綺麗事を頭に

スポンサーリンク

【RSSリーダー】XMLの指定要素をLINQで取り出す

週末に時間が取れたので再開しました。

 

    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はかなり便利です。デリゲートとか使えればもっとすっきりしそうなのですが、今日はここまでです。

スポンサーリンク