.NET Core でブログなどの RSS フィードをパースするためのライブラリに CodeHollow.FeedReader というものがあり、NuGet よりインストールができます。CodeHollow.FeedReader は RSS 0.91, 0.92, 1.0, 2.0 と ATOM をサポートしています。
今回はこのライブラリを使用して、コンソールアプリケーションで RSS フィードを読み込んで内容を出力してみます。
なお、環境は Mac (macOS High Sierra 10.13.3) で .NET Core SDK 2.1.4、Visual Studio Code になります。
まず、CodeHollow.FeedReader の現時点(2018/03/17)の最新版を以下のコマンドでインストールします。
$ dotnet add package CodeHollow.FeedReader --version 1.1.1
RSS フィードを読み込み、内容を出力する処理を Program.cs に記述します。今回は、このブログの RSS フィードを使用します。非同期処理がやっかいですが、それ以外は単純な内容ですね。
using CodeHollow.FeedReader; using System.Threading.Tasks; //(中略) static void Main(string[] args) { //この Task#Wait() の記法はコンソールアプリだけ。GUIではデッドロックになる。 Task task = ReadFeedAsync(); task.Wait(); } static async Task ReadFeedAsync() { var reader = await FeedReader.ReadAsync("http://fnya.cocolog-nifty.com/blog/atom.xml"); foreach(var item in reader.Items){ Console.WriteLine("Title:{0}", item.Title); Console.WriteLine("Link:{0}", item.Link); } }
実行結果は、以下のようになり正しく値が取得できていることが分かります。
$ dotnet build $ dotnet run Title:[.NET Core]Entity Framework CoreでAND検索・OR検索する方法 Link:http://fnya.cocolog-nifty.com/blog/2018/03/net-coreentity-.html Title:.NET Core な時代にMySQLとPostgreSQLのどちらを選択すべきか Link:http://fnya.cocolog-nifty.com/blog/2018/03/net-core-mysqlp.html Title:ASP.NET Core+Entity Framework CoreでコードからPostgreSQLにデータベースを作成する方法 Link:http://fnya.cocolog-nifty.com/blog/2018/03/net-entytyframe.html Title:.NET Coreのデータベース接続文字列を外部ファイルに保存する Link:http://fnya.cocolog-nifty.com/blog/2018/03/net-core-9650.html Title:Entity Framework CoreでPostgresSQLからモデルクラスを自動作成する Link:http://fnya.cocolog-nifty.com/blog/2018/03/net-entityframe.html Title:MacにPostgreSQLをインストールする方法 Link:http://fnya.cocolog-nifty.com/blog/2018/03/macpostgresql-b.html Title:MacのターミナルでMySQLコマンドを日本語入力をしたい Link:http://fnya.cocolog-nifty.com/blog/2018/03/macmysql-2a01.html Title:ASP.NET CoreアプリをLinuxにデプロイしてNginxで公開する方法(CentOS7) Link:http://fnya.cocolog-nifty.com/blog/2018/03/aspnet-corelinu.html Title:ASP.NET Core アプリが Linux で表示できない場合の解決方法 Link:http://fnya.cocolog-nifty.com/blog/2018/03/aspnet-core-lin.html Title:How to fix Cannot find compilation library location for package Microsoft.Win32.Registry Link:http://fnya.cocolog-nifty.com/blog/2018/03/how-to-fix-cann.html