C#はXMLであれば簡単に扱うことができるのですが、HTMLを扱うライブラリは入っていません。
それで今回はHtml Agility Packを使ってHTMLをパースしたいと思います。
”ツール>NuGetパッケージマネージャー>ソリューションのNuGetパーケージの管理”から、Html Agilty Packをインストールします。
参照の検索ボックスに”HtmlAgilityPack”を入力し、ZマークのHtmlAgiltyPackをインストールします。
あとはusingで指定すれば使えます。
using HtmlAgilityPack;
HTML形式のテキストをパースする場合
HtmlDocument htmlDoc = new HtmlDocument(); htmlDoc.LoadHtml(【変数名】もしくは【テキスト】);
HTMLファイルの内容をパースする場合
HtmlDocument htmlDoc = new HtmlDocument(); htmlDoc.Load(【ファイルパス】);
すべてのノードから特定の属性値を持つものを取得する場合
HtmlNodeCollection nodes = htmlDoc.DocumentNode.SelectNodes(@"//*[@【属性】 ='【属性値】']");
取得したノード群の中から各ノードの属性値を変更する場合
foreach (HtmlNode node in nodes) { node.Attributes["【属性】"].Value = 【属性値】; }
Xpathと組み合わせて、XMLのように扱えるので非常に便利です。