powershell で XML データを扱う

powershellXML データを扱う方法をメモ。今回は [xml] でキャストする方法、Select-Xml を使う方法を試してみました。

サンプルだけですが、以下の感じになります。 Select-Xml のほうは *****:<ファイル名> みたいに取得結果にファイル名が表示されるので -split で : で分割してやってます。

$file = "test.xml"
$xml = [xml](Get-Content $file)
Write-Host $xml.element.hoge
Write-Host $xml.element.ahe.oro
Write-Host $xml.element.uga.attr
Write-Host $xml.GetType() #System.Xml.XmlDocument オブジェクト

$hoge = Select-Xml -Path $file -XPath "/element/hoge"
$uga_attr = Select-Xml -Path $file -XPath "/element/uga/@attr"
Write-Host ($hoge -split ":")[0]
Write-Host ($uga_attr -split ":")[0]
Write-Host $xml.GetType() #同じく System.Xml.XmlDocument

■ test.xml

<element>
  <hoge>HOGE</hoge>
  <uga attr="foo">UGA</uga>
  <ahe><oro>AHEORO</oro></ahe>
</element>

非常に簡単に XML が扱えますね。

・Select-Xml
https://technet.microsoft.com/ja-jp/library/hh849968.aspx
XPathの例
https://msdn.microsoft.com/ja-jp/library/ms256086(v=vs.120).aspx

簡単ですが、以上です。

[環境情報]
Windows 10
powershell 5.0