PowerShellコマンドレット虎の巻

Select-Xml

Select-Xmlは、XMLを検索するコマンドです。

エイリアスなし

解説

XML文字列やXMLファイルからデータを抽出します。

構文

(構文)
Select-Xml [-XPath] <string> [-Xml] <XmlNode[]> [<CommonParameters>] Select-Xml [-XPath] <string> [-Path] <string[]> [<CommonParameters>] Select-Xml [-XPath] <string> [<CommonParameters>]
【主要パラメータ】
パラメータ説明
-Path パス検索対象のXMLファイルのパスを指定する
(ワイルドカード使用可)
(例)-Path "D:\sample.xml"
-LiteralPath パス対象パスを指定する(ワイルドカード使用不可)
(例)-LiteralPath "D:\test"
-Xml検索対象のXMLノードを直接指定する
-Content XML文字列検索対象のXML文字列を指定する
-XPath XパスXML文書内の要素を検索するためのXPath式を指定する(必須)
(例)-XPath "//item/name"
-NamespaceXMLで使用される名前空間をハッシュテーブルとして指定する

共通的なパラメータは「共通パラメータ」をご覧ください。

サンプル

XML文字列から要素を抽出する

PS C:\>$xml = @" <items> <item> <name>みかん</name> <price>50</price> </item> <item> <name>りんご</name> <price>200</price> </item> <item> <name>もも</name> <price>400</price> </item> </items> "@ PS C:\>Select-Xml -Content $xml -XPath "//item/name" | ForEach-Object {$_.Node.InnerXML} ⇒ みかん りんご もも

XML文字列から条件に一致する要素を検索する

Select-Xml -Content $xml -XPath "//item[price='200']/name" | ForEach-Object {$_.Node.InnerXML} ⇒ りんご

XMLファイルから条件に一致する要素を検索する

Select-Xml -Path "D:\sample.xml" -XPath "//item[price='200']/name" | ForEach-Object {$_.Node.InnerXML}

コマンドのヘルプを表示する

Get-Help Select-Xml

備考

  • バッチファイル内で使用する場合は、エラーハンドリング処理を行うことをお勧めします。

関連項目