Select-XML
Находит текст в 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.