【C#】HTMLをHtml Agilty Packを使ってパースする

 C#はXMLであれば簡単に扱うことができるのですが、HTMLを扱うライブラリは入っていません。

 それで今回はHtml Agilty Packを使ってHTMLをパースしたいと思います。

 ”ツール>NuGetパッケージマネージャー>ソリューションのNuGetパーケージの管理”から、Html Agilty Packをインストールします。

 参照の検索ボックスに"HtmlAgiltyPack"を入力し、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のように扱えるので非常に便利です。

スポンサーリンク

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です