powershell で XML データを扱う
powershell で XML データを扱う方法をメモ。今回は [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