XML 文字列またはドキュメントのテキストを検索します。

構文

Select-XML -Content <string[]> [-Xpath] <string> [-Namespace <hashtable>] [<CommonParameters>]

Select-XML [-Path] <string[]> [-Xpath] <string> [-Namespace <hashtable>] [<CommonParameters>]

Select-XML [-Xml] <XmlNode[]> [-Xpath] <string> [-Namespace <hashtable>] [<CommonParameters>]

説明

Select-XML コマンドレットでは、XPath クエリを使用して XML 文字列およびドキュメントのテキストを検索できます。XPath クエリを入力し、Content、Path、または Xml の各パラメーターを使用して、検索する XML を指定します。

パラメーター

-Content <string[]>

検索する XML を含む文字列を指定します。パイプを使用して、文字列を Select-XML に渡すこともできます。

必須

true

位置

named

既定値

なし

パイプライン入力を許可する

true (ByValue)

ワイルドカード文字を許可する

false

-Namespace <hashtable>

XML で使用される名前空間のハッシュ テーブルを指定します。@{<namespaceName> = <namespaceValue>} という形式を使用します。

必須

false

位置

named

既定値

なし

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-Path <string[]>

検索する XML ファイルのパスとファイル名を指定します。ワイルドカードを使用できます。

必須

true

位置

2

既定値

なし

パイプライン入力を許可する

true (ByPropertyName)

ワイルドカード文字を許可する

true

-Xml <XmlNode[]>

1 つまたは複数の XML ノードを指定します。各コマンドには Path パラメーターまたは XML パラメーターが必須です。

XML ドキュメントは、XML ノードの集合として処理されます。パイプを使用して XML ドキュメントを Select-XML に渡す場合、各ドキュメント ノードは、パイプラインへの到達に応じて個別に検索されます。

必須

true

位置

2

既定値

なし

パイプライン入力を許可する

true (ByValue, ByPropertyName)

ワイルドカード文字を許可する

false

-Xpath <string>

XPath 検索クエリを指定します。クエリ言語では、大文字と小文字が区別されます。このパラメーターは必須です。

必須

true

位置

1

既定値

なし

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

<CommonParameters>

このコマンドレットは、次の共通パラメーターをサポートします: -Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer、および -OutVariable。Ô”¼š¤Ë¤Ä¤¤¤Æ¤Ï¡¢次を参照してください: about_Commonparameters.

入力と出力

入力値の型は、コマンドレットへのパイプが可能なオブジェクトの型です。戻り値の型は、コマンドレットによって返されるオブジェクトの型です。

入力

System.String または System.Xml.XmlNode

パイプを使用してパスまたは XML ノードを Select-XML に渡すことができます。

出力

System.Xml.XmlElement または System.Xml.XmlText

XPath は、XML ドキュメントの部分を識別するために設計された標準言語です。XPath 言語の詳細については、MSDN (Microsoft Developer Network) ライブラリの「Event Selection (イベントの選択)」トピック (https://go.microsoft.com/fwlink/?LinkId=143608) の「Selection Filters (選択フィルター)」セクションを参照してください。MSDN ライブラリの「XPath リファレンス」(http://msdn.microsoft.com/ja-jp/library/ms256115.aspx) も参照してください。

例 1

C:\PS>$path = "$env:windir\System32\WindowsPowerShell\v1.0\Types.ps1xml"

C:\PS> select-xml -path $path -xpath "/Types/Type/Members/AliasProperty"

説明
-----------
この例では、Types.ps1xml ファイル内で AliasProperty ノードの子項目を検索します。






例 2

C:\PS>select-xml -path test*.xml, help.xml -xpath "/Tests/Test[1]/Name"

説明
-----------
このコマンドは、Select-XML を使用して、複数の XML ファイルで検索を行います。






例 3

C:\PS>[xml]$Types = get-content "$env:windir\System32\WindowsPowerShell\v1.0\Types.ps1xml"

C:\PS> select-xml -xml $Types -xpath "//MethodName"

説明
-----------
この例では、パイプを使用して XML ドキュメントを Search-Path に渡す方法を示します。






例 4

C:\PS>$namespace = @{command="https://schemas.microsoft.com/maml/dev/command/2004/10"; maml="https://schemas.microsoft.com/maml/2004/10"; dev="https://schemas.microsoft.com/maml/dev/2004/10"}

C:\PS> $path = "$env:windir\System32\WindowsPowerShell\V1.0\en-us\*dll-Help.xml"

C:\PS> select-xml -path $path -namespace $namespace -xpath "//command:name"

Text                      Node      Path                                      
----                      ----      ----                                      
Add-Computer              name      C:\Windows\System32\WindowsPowerShell\V...
Add-Content               name      C:\Windows\System32\WindowsPowerShell\V...
Checkpoint-Computer       name      C:\Windows\System32\WindowsPowerShell\V...
Clear-Content             name      C:\Windows\System32\WindowsPowerShell\V...
Clear-EventLog            name      C:\Windows\System32\WindowsPowerShell\V...
...

説明
-----------
この例では、Select-XML コマンドレットを使用して Windows PowerShell XML ベースのコマンドレット ヘルプ ファイルを検索する方法を示します。

最初のコマンドは、XML 名前空間を表すハッシュ テーブルを作成し、$namespace 変数に格納します。

2 番目のコマンドは、ヘルプ ファイルのパスを $path 変数に格納します。

3 番目のコマンドは、Select-Xml を使用して XML を検索し、ファイルの任意の場所にある Command:Name タグを検出することによってコマンドレット名を探し出します。






例 5

C:\PS>select-xml -content $xml -xpath "//edition"

C:\PS> $xml = @"
<?xml version="1.0" encoding="utf-8"?>
 <Book>
   <projects>
     <project name="Book1" date="2009-01-20">
       <editions>
          <edition language="English">En.Book1.com</edition>
          <edition language="German">Ge.Book1.Com</edition>
          <edition language="French">Fr.Book1.com</edition>
          <edition language="Polish">Pl.Book1.com</edition>
       </editions>
     </project>
   </projects>
 </Book>
"@

C:\PS> select-xml -content $xml -xpath "//edition"

Text            Node          Path                                      
----            ----          ----                                      
En.Book1.com    edition       InputStream                               
Ge.Book1.Com    edition       InputStream                               
Fr.Book1.com    edition       InputStream                               
Pl.Book1.com    edition       InputStream


C:\PS> $xml | select-xml -xpath "//edition"      

Text            Node          Path                                      
----            ----          ----                                      
En.Book1.com    edition       InputStream                               
Ge.Book1.Com    edition       InputStream                               
Fr.Book1.com    edition       InputStream                               
Pl.Book1.com    edition       InputStream

説明
-----------
この例では、Select-XML の Content パラメーターを使用して、here-string の XML コンテンツを検索しています。

最初のコマンドは、here-string を $xml 変数に格納します。

2 番目のコマンドは、Content パラメーターを使用して、$xml 変数に XML を指定します。

3 番目のコマンドは、2 番目のコマンドと同じです。パイプライン演算子 (|) を使用して、$xml 変数の XML を Select-XML コマンドレットに送信します。

here-string の詳細については、「about_Quoting_Rules」と入力してください。






関連項目




目次