Находит текст в 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. Используйте формат @{<имя пространства имен> = <значение пространства имен>}.

Обязательно?

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>

Данный командлет поддерживает общие параметры -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) по адресу https://go.microsoft.com/fwlink/?LinkId=143608. См. также раздел "Справочник по XPath" в библиотеке MSDN по адресу 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"

Описание
-----------
В этом примере показан поиск дочерних элементов узла AliasProperty в файле Types.ps1xml.






Пример 2

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

Описание
-----------
Для поиска по нескольким XML-файлам в этой команде используется командлет Select-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 для поиска по XML-файлам справки по командлетам Windows PowerShell. 

Первая команда создает хэш-таблицу, представляющую пространство имен XML, и сохраняет ее в переменной $namespace.

Вторая команда сохраняет путь к файлам справки в переменной $path.

Третья команда использует 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

Описание
-----------
В этом примере параметр Content командлета Select-XML используется для поиска автономной строки в коде XML.

Первая команда сохраняет автономную строку в переменной $xml.

Вторая команда использует параметр Content, чтобы задать код XML в переменной $xml. 

Третья команда эквивалентна второй. С помощью оператора конвейера (|) она передает код XML в переменной $xml командлету Select-XML. 

Чтобы получить дополнительные сведения об автономный строках, введите команду about_Quoting_Rules.






См. также




Содержание