意外となんとかなる日記

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

スポンサーリンク

【RSSリーダー】データをクラスで持つようにする

先日はソース作成まで行いました。

ですがちょっとやっつけすぎです。

ここはC#らしくクラスを使用しようと考えました。

 

データ内容

とりあえずXMLファイルの構成を確認します。

まずはIEで表示した場合です

 

f:id:Suechan:20150322171321j:plain

続いてVSで表示した場合

f:id:Suechan:20150322171447j:plain

 

1つのフィードに対して複数のitemがあることがわかります。これに沿ってクラスを作成します。


public class Feed { // URLに対する1つのフィードを格納 public string Title { get; set; } public FeedItem[] item { get; set; } public Feed(string url) { XDocument doc = XDocument.Load(url); // Xdocument形式で読み込み // タイトル設定(いずれ修正予定) IEnumerable<XElement> title = from el in doc.Descendants("title") select el; this.Title = title.First(s => string.IsNullOrEmpty(title.ToString()) == false).Value; // FeedItemをセットする var statuses= from s in doc.Root.Descendants("item") select new { this.item.add(s.Element("title").Value,s.Element("link").Value,s.Element("pubDate").Value); } } } public class FeedItem { public string Title { get; set; } // タイトル public string Url { get; set; } // URL public string PubDate { get; set; } // 更新日 public FeedItem(string title, string url, string pubdate) { this.Title = title; this.Url = url; this.PubDate = pubdate; } }

とここまではよかったのですが、this.item.addのところで赤波線が出てしまいます。

 

次回は対策を考えたいと思います。

スポンサーリンク