XPath を使用して XML の属性を選択する

Rohan Timalsina 2023年1月30日
  1. PowerShell で XML の属性を選択するには、Select-Xml コマンドレットを使用する
  2. PowerShell で XML の属性を選択するには、SelectNodes メソッドを使用する
  3. PowerShell で XML の属性を選択するには、Get-Content コマンドレットを使用する
XPath を使用して XML の属性を選択する

XML は ExtensibleMarkupLanguage の略です。XML ファイルは、ドキュメントの構造を定義するためのカスタムタグを持つプレーンテキストファイルです。

これは主に、構造化された情報を保存および共有するために使用されます。XML ファイルの内容は HTML ファイルに似ています。

このチュートリアルでは、PowerShell の XPath を使用して XML の属性を選択するためのさまざまな方法を紹介します。

PowerShell で XML の属性を選択するには、Select-Xml コマンドレットを使用する

Select-Xml コマンドレットを使用すると、XPath を使用して XML 文字列またはドキュメント内のテキストを検索できます。

これは、XML ファイルの簡単な例です。

<website>
<site name="DelftStack">
<content>
<topic>PowerShell Howtos</topic>
<article>How to convert XML into CSV?</article>
</content>
</site>
<site name="DelftStack">
<content>
<topic>Linux Howtos</topic>
<article>Delete Files Recursively in Linux</article>
</content>
</site>
</website>

次のコマンドは、C:\Users\rhntm ディレクトリの new.xml ファイルで XPath クエリ topic を検索します。

Select-Xml -Path C:\Users\rhntm\new.xml -XPath "//topic" | Select-Object -ExpandProperty Node

出力:

#text
-----
PowerShell Howtos
Linux Howtos

-Path パラメーターは、検索する XML ファイルのパスとファイル名を指定します。

-XPath パラメーターは、検索する XPath クエリを指定します。クエリテキストでは大文字と小文字が区別されます。

PowerShell で XML の属性を選択するには、SelectNodes メソッドを使用する

SelectNodes() メソッドは、XML ファイルの XPath 式に一致するノードのリストを選択します。

次の例では、new.xml ファイルからノード content を選択します。

[xml]$xml = Get-Content 'C:\Users\rhntm\new.xml'
$xml.SelectNodes('//content')

出力:

topic             article
-----             -------
PowerShell Howtos How to convert XML into CSV?
Linux Howtos      Delete Files Recursively in Linux

[xml] は変数を XML オブジェクトとしてキャストします。Get-Content コマンドレットは、C:\Users\rhntm\new.xml のコンテンツを取得し、それを $xml 変数に保存します。

特定の属性を選択するには、Select-Object コマンドレットを使用できます。たとえば、次のコマンドは、new.xml ファイルから article のみを選択します。

[xml]$xml = Get-Content 'C:\Users\rhntm\new.xml'
$xml.SelectNodes('//content') | Select-Object article

出力:

article
-------
How to convert XML into CSV?
Delete Files Recursively in Linux

PowerShell で XML の属性を選択するには、Get-Content コマンドレットを使用する

上で見たように、Get-Content コマンドレットは XML ファイルのコンテンツを取得します。コンテンツを変数に保存して、XML オブジェクトとしてキャストできます。

次の例は、Get-Content を使用して XML ファイルの属性を選択する方法を示しています。

[xml]$xml = Get-Content 'C:\Users\rhntm\new.xml'
$xml.website.site.content.topic

出力:

PowerShell Howtos
Linux Howtos

これは、XML ファイルのテキスト値が必要な場合に簡単に使用できます。これが、PowerShell で XML の属性を選択する方法に役立つことを願っています。

著者: Rohan Timalsina
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

関連記事 - PowerShell XML