【C#】RSSフィードを読み込んでみよう。
今回はRSSフィードを読み込んで、
<a href='link'>記事のタイトル</a>
のように記事5件分抽出する、という課題を投下します。
ポイントとしては、
1. RSSフィードを読み込む
2. item.Element("link")の中身がURLの形になっているので、タグを消す
[2019.08.19 修正] item.Element("link").Value
取ってくれば中身だけなので正規表現の処理はいらないですね…w
の2つかなと思います。
1に関しては、「C# RSS 取得」で調べたら色々と出てきました。
今回載せたコード以外の方法もあるそう。
2に関しては、正規表現使うのが無難なのかなと思い、調べながら使ってみました。(正規表現苦手w)
[2019.08.19 修正]上記理由と同等
using System; using System.Collections.Generic; using System.Linq; using System.Text.RegularExpressions; using System.Xml.Linq; namespace D01tsumathTask2 { class Program { static void Main(string[] args) { string url = @"http://d01tsumath.hatenablog.com/rss"; Console.WriteLine("どいつまブログRSS取得しまマース!"); try { // RSS読み込み XElement element = XElement.Load(url); // channelの取得 XElement channelElement = element.Element("channel"); //itemの取得 IEnumerable<XElement> elementItems = channelElement.Elements("item"); for (int i = 0; i < 5; i++) { XElement item = elementItems.ElementAt(i); // 先頭の<link></link>を取り出す // var linkText = Regex.Replace(item.Element("link").ToString(), "<[^>]*?>", ""); // Console.WriteLine($" タイトル : <a href='{linkText}'>{item.Element("title").Value}</a>"); Console.WriteLine($" タイトル : <a href='{item.Element("link").Value}'>{item.Element("title").Value}</a>"); } Console.WriteLine("完了"); } catch (Exception e) { Console.WriteLine(e.Message); } } } }
自分の書いたコードを世に放つって…なんか肝が冷えるなぁ。笑