伝説のどいつまの伝説~失敗編~

岩美に永住したい新米エンジニアのあれやこれやな話。

【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);
            }
        }
    }
}

自分の書いたコードを世に放つって…なんか肝が冷えるなぁ。笑