1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PowerShell  HtmlAgilityPack ライブラリ

Last updated at Posted at 2024-07-27

[注記]本記事はChatGptの回答備忘録として記載しております。

PowerShell では、XPath を使用して HTML ドキュメント内の特定の要素を検索し、その InnerText を取得することができます。ここでは HtmlAgilityPack ライブラリを使用して、XPath に基づいて HTML を解析できます。

まず、HtmlAgilityPack をインストールする必要があります。以下の手順でインストールできます。

PowerShell で以下のコマンドを実行して HtmlAgilityPack をインストールします。

Install-Package HtmlAgilityPack

次に、以下のスクリプトを使用して、XPath を用いて HTML 要素を検索し、その InnerText を取得します。

# HtmlAgilityPackライブラリをインポート
Add-Type -Path ".\lib\HtmlAgilityPack.dll"

# HTMLファイルのパスを指定
$htmlFilePath = ".\MailContent~.html"

# HTMLファイルを読み込む
$htmlContent = Get-Content -Path $htmlFilePath -Raw

# HtmlDocumentオブジェクトを作成し、HTMLコンテンツをロード
$htmlDoc = New-Object HtmlAgilityPack.HtmlDocument
$htmlDoc.LoadHtml($htmlContent)

# XPathを使用して特定の要素を検索 (例: //div)
$nodes = $htmlDoc.DocumentNode.SelectNodes("//tr")

# 各ノードのInnerTextを取得して表示
foreach ($node in $nodes) {
    Write-Output $node.InnerText
}


このスクリプトのポイントは以下の通りです。

HtmlAgilityPack ライブラリをインポートします。
ローカルの HTML ファイルを読み込み、その内容を HtmlDocument オブジェクトにロードします。
XPath を使用して特定の要素を検索します(例://div はすべての div 要素を検索します)。
各要素の InnerText を取得して表示します。
XPath クエリを変更することで、他の要素や属性に基づいた検索が可能です。例えば、特定のクラスを持つ div 要素を検索する場合は、以下のように XPath クエリを変更します。

# クラスが特定の値を持つdiv要素を検索
$nodes = $htmlDoc.DocumentNode.SelectNodes("//div[@class='specific-class']")
これにより、class 属性が specific-class であるすべての div 要素を検索し、その InnerText を取得できます。
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?