[.NET] Web サーバーから RSS フィードを読み込む
.NET Framework 3.5 から System.ServiceModel.Syndication なんてカッコイイ名前空間が増えてまして。 これを使うと、 サックリと Web サーバーから RSS が読み込めるのですな。
こんな感じで。
WebClient svc = new WebClient();
svc.Encoding = new UTF8Encoding(); //ちぃっ、ちゃんとレスポンスヘッダを見ろよ~ (--;
string rssString = svc.DownloadString(url);
StringReader stringReader
= new StringReader(rssString);
XmlReader reader
= XmlReader.Create(stringReader);
SyndicationFeed feed
= SyndicationFeed.Load(reader);
で、 この SyndicationFeed オブジェクトが持っている Items コレクションに、 SyndicationItem が入ってくるわけ。 おまけに、 これは Silverlight 3 でも使えるらしい。
と、 ここまでは良かったんですが。 SyndicationFeed ってば、 Atom 1.0 と RSS 2.0 しか読んでくれない。 まだまだ多い RSS 1.0 を読ませると、 そんなもんシラン、 と… orz
うゎ、 そりゃないでしょ~、 とボヤきながらも探してみれば。 ちゃんと神はいらっしゃる f(^^;
March 18, 2009
Syndicating and Consuming RSS 1.0 (RDF) Feeds in ASP.NET 3.5
By Scott Mitchell
このページからダウンロードできる Mitchell 氏が作った Rss10FeedFormatter を使えば、 RSS 1.0 を読み込むことができます。
さきほどの最後の行SyndicationFeed feed
= SyndicationFeed.Load(reader);
を、 次のように変更します。
skmFeedFormatters.Rss10FeedFormatter formatter
= new skmFeedFormatters.Rss10FeedFormatter();
formatter.ReadFrom(reader);
SyndicationFeed feed = formatter.Feed;
これで RSS 1.0 が読み込めます。 ( 逆に、 これだけだと RSS 1.0 しか読めません。 )
また、 RSS 1.0 のすべての要素を読み込んでくれるわけではないです。 まぁ、 ソースコードを直してしまえばいいんですけどね。
| 固定リンク
「プログラミング」カテゴリの記事
- 【.NET / Win8.1 ストアアプリ】 HttpClient で TLS 1.1 / 1.2 に対応するには(2018.06.17)
- 【VS2017 15.7pv2】 XAML のランタイム ツールに 「ヒートマップ」 が増えた(2018.03.28)
- 【.NET Core】 プロジェクトを作ると 「project.assets.json が見つかりません」 エラー(2018.02.10)
- 【#UWP】 ビットマップの表示色を変える (Win2D.uwp 経由で Direct2D を使う)(2017.08.23)
- 【#UWP】 CompactOverlay モード: Picture in Picture というか、「最前面に表示」するウィンドウを作る(2017.08.16)
この記事へのコメントは終了しました。
コメント