在 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 Cmdlet 能讓您以 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[]>

指定一個或多個 XML 節點。每一個命令都需要有 Path 或 XML 參數。

XML 文件會以 XML 節點集合的方式處理。如果您經由管道將 XML 文件輸出至 Select-XML,則當每個文件節點通過管線時將個別進行搜尋。

必要?

true

位置?

2

預設值

接受管線輸入?

true (ByValue, ByPropertyName)

接受萬用字元?

false

-Xpath <string>

指定 XPath 搜尋查詢。該查詢語言有大小寫之分。此參數為必要項。

必要?

true

位置?

1

預設值

接受管線輸入?

false

接受萬用字元?

false

<CommonParameters>

這個 Cmdlet 支援一般參數:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。如需詳細資訊,請參閱 about_Commonparameters.

輸入和輸出

輸入型別是可經由管道輸出至 Cmdlet 的物件型別。傳回型別則是 Cmdlet 所傳回的物件型別。

輸入

System.String 或 System.Xml.XmlNode

您可經管道將路徑或 XML 節點輸出至 Select-XML。

輸出

System.Xml.XmlElement 或 System.Xml.XmlText

附註

XPath 是一種標準語言,專門用來識別 XML 文件的部分。如需 XPath 語言的詳細資訊,請參閱 MSDN (Microsoft Developer Network) Library 中<事件選取範圍>主題的<選取範圍篩選器>一節 (英文),網址為:https://go.microsoft.com/fwlink/?LinkId=143608。此外,請參閱 MSDN Library 中的<XPath 參考>,網址為:https://go.microsoft.com/fwlink/?LinkId=143609。

範例 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 Cmdlet 搜尋 Windows PowerShell XML Cmdlet 說明檔。

第一個命令會建立代表 XML 命名空間的雜湊表,然後將其儲存到 $namespace 變數。

第二個命令會將說明檔的路徑儲存到 $path 變數。

第三個命令會透過在檔案中的任何位置找出 Command:Name 標記,使用 Select-Xml 搜尋 XML 以找出 Cmdlet 名稱。






範例 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 變數。

第二個命令會使用 Content 參數指定 $xml 變數中的 XML。

第三個命令相當於第二個命令。此命令會使用管線運算子 (|) 將 $xml 變數中的 XML 傳送給 Select-XML Cmdlet。

如需 here-string 的詳細資訊,請輸入 about_Quoting_Rules。






請參閱




目錄