2017.11.24
2020.1.7

ノードの要素種類を変更する(Html Agility Pack)

Html Agility Packで読み込んだHTMLからSelectNodesでノードを取得した後に、ノードの要素を別の要素に切り替える方法です。

HTMLファイル

読み込むHTMLは以下の通りです。(c:\temp\test.html)


<div>a1</div>
<div>a2</div>
<div>a3</div>

コード

以下のコードでは、<div>要素をSelectNodesですべて取得したあとに、<p>要素に書き換えています。


var doc = new HtmlDocument();
doc.Load(@"c:\temp\test.html");

// <div>要素をすべて取得して<p>要素に置換
var nodes = doc.DocumentNode.SelectNodes("//div");
foreach(var node in nodes)
{
    node.Name = "p";
}
Console.WriteLine(doc.DocumentNode.OuterHtml);

出力結果は以下の通り。


<p>a1</p>
<p>a2</p>
<p>a3</p>

取得したノードの「Name」プロパティを書き換えるだけで、要素の種類が変更されます。

C#】関連記事