XPath を使用して XML の属性を選択する
-
PowerShell で XML の属性を選択するには、
Select-Xml
コマンドレットを使用する -
PowerShell で XML の属性を選択するには、
SelectNodes
メソッドを使用する -
PowerShell で XML の属性を選択するには、
Get-Content
コマンドレットを使用する
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 の属性を選択する方法に役立つことを願っています。