PowerShell Cmdlet - Select-XML
 記事記号:[mg1978] 初版:2011/Sep/30

この文書は、Windows PowerShellのヘルプ機能で表示される内容を再構成したものです。

名前
    Select-XML
    
概要
    XML 文字列またはドキュメントのテキストを検索します。
    
構文
    Select-XML -Content <string[]> [-Xpath] <string> [-Namespace <hashtable>] [<
    CommonParameters>]
    
    Select-XML [-Path] <string[]> [-Xpath] <string> [-Namespace <hashtable>] [<C
    ommonParameters>]
    
    Select-XML [-Xml] <XmlNode[]> [-Xpath] <string> [-Namespace <hashtable>] [<C
    ommonParameters>]
    
説明
    Select-XML コマンドレットでは、XPath クエリを使用して XML 文字列およびドキュ
    メントのテキストを検索できます。XPath クエリを入力し、Content、Path、または 
    Xml の各パラメーターを使用して、検索する XML を指定します。

パラメーター
    -Content <string[]>
        検索する XML を含む文字列を指定します。パイプを使用して、文字列を Select
        -XML に渡すこともできます。
        
        必須                         true
        位置                         named
        既定値                       なし
        パイプライン入力を許可する   true (ByValue)
        ワイルドカード文字を許可する false
        
    -Namespace <hashtable>
        XML で使用される名前空間のハッシュ テーブルを指定します。@{<namespaceNam
        e> = <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、WarningAction、WarningVariable、
        OutBuffer、および OutVariable。詳細については、
        「get-help 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 (イベントの選択)」トピック (http://go.microsoft.co
        m/fwlink/?LinkId=143608) の「Selection Filters (選択フィルター)」セクシ
        ョンを参照してください。MSDN ライブラリの「XPath リファレンス」(http://m
        sdn.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="http://schemas.microsoft.com/maml/dev/command/
    2004/10"; maml="http://schemas.microsoft.com/maml/2004/10"; dev="http://sche
    mas.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 の XM
    L コンテンツを検索しています。
    
    最初のコマンドは、here-string を $xml 変数に格納します。
    
    2 番目のコマンドは、Content パラメーターを使用して、$xml 変数に XML を指定
    します。
    
    3 番目のコマンドは、2 番目のコマンドと同じです。パイプライン演算子 (|) を使
    用して、$xml 変数の XML を Select-XML コマンドレットに送信します。
    
    here-string の詳細については、「about_Quoting_Rules」と入力してください。
    
関連するリンク
    Online version: http://go.microsoft.com/fwlink/?LinkID=135255
    ConvertTo-XML 
    	
記事で解説しているパソコンの環境
 基本ソフト: Windows 7
 キーワード: Windows PowerShell、ヘルプ、Cmdlet、Select-XML
ご利用数: 1919679
感想・要望・問い合わせは こちら