Busca texto en una cadena o documento XML.
Sintaxis
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>]
Descripción
El cmdlet Select-XML permite utilizar consultas XPath para buscar texto en cadenas y documentos XML. Escriba una consulta XPath y utilice el parámetro Content, Path o Xml para especificar el XML en el que se va a buscar.
Parámetros
-Content <string[]>
Especifica la cadena que contiene el XML en el que se va a buscar. También puede canalizar cadenas a Select-XML.
¿Requerido? |
true |
¿Posición? |
named |
Valor predeterminado |
ninguno |
¿Aceptar canalización? |
true (ByValue) |
¿Aceptar caracteres comodín? |
false |
-Namespace <hashtable>
Especifica una tabla hash de los espacios de nombres utilizados en el XML. Use el formato @{<nombreDeEspacioDeNombres> = <valorDeEspacioDeNombres>}.
¿Requerido? |
false |
¿Posición? |
named |
Valor predeterminado |
ninguno |
¿Aceptar canalización? |
false |
¿Aceptar caracteres comodín? |
false |
-Path <string[]>
Especifica la ruta de acceso y el nombre de los archivos XML en los que se va a buscar.Se permite el uso de caracteres comodín.
¿Requerido? |
true |
¿Posición? |
2 |
Valor predeterminado |
ninguno |
¿Aceptar canalización? |
true (ByPropertyName) |
¿Aceptar caracteres comodín? |
true |
-Xml <XmlNode[]>
Especifica uno o varios nodos XML. Se requiere un parámetro Path o XML en cada comando.
Un documento XML se procesará como una colección de nodos XML. Si se canaliza un documento XML a Select-XML, se buscará de manera independiente en cada nodo del documento cuando pase por la canalización.
¿Requerido? |
true |
¿Posición? |
2 |
Valor predeterminado |
ninguno |
¿Aceptar canalización? |
true (ByValue, ByPropertyName) |
¿Aceptar caracteres comodín? |
false |
-Xpath <string>
Especifica una consulta de búsqueda XPath. El lenguaje de consulta distingue entre mayúsculas y minúsculas. Este parámetro es obligatorio.
¿Requerido? |
true |
¿Posición? |
1 |
Valor predeterminado |
ninguno |
¿Aceptar canalización? |
false |
¿Aceptar caracteres comodín? |
false |
<CommonParameters>
Este cmdlet admite los parámetros comunes: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer y -OutVariable. Para obtener más información, vea about_Commonparameters.
Entradas y salidas
El tipo de entrada es el tipo de los objetos que se pueden canalizar al cmdlet. El tipo devuelto es el tipo de los objetos que el cmdlet devuelve.
Entradas |
System.String o System.Xml.XmlNode Puede canalizar una ruta de acceso o un nodo XML a Select-XML. |
Salidas |
System.Xml.XmlElement o System.Xml.XmlText |
Notas
XPath es un lenguaje estándar que se ha diseñado para identificar las partes de un documento XML. Para obtener más información sobre el lenguaje Xpath, vea la sección "Filtros de selección" del tema "Selección de eventos" en MSDN (Microsoft Developer Network) Library, en https://go.microsoft.com/fwlink/? LinkId=143608 (puede estar en inglés). Vea también "Referencia de XPath" en MSDN library, en https://go.microsoft.com/fwlink/?LinkId=143609.
Ejemplo 1
C:\PS>$path = "$env:windir\System32\WindowsPowerShell\v1.0\Types.ps1xml" C:\PS> select-xml -path $path -xpath "/Types/Type/Members/AliasProperty" Descripción ----------- En este ejemplo, se buscan los elementos secundarios del nodo AliasProperty en el archivo Types.ps1xml.
Ejemplo 2
C:\PS>select-xml -path test*.xml, help.xml -xpath "/Tests/Test[1]/Name" Descripción ----------- Este comando utiliza Select-XML para buscar en varios archivos XML.
Ejemplo 3
C:\PS>[xml]$Types = get-content "$env:windir\System32\WindowsPowerShell\v1.0\Types.ps1xml" C:\PS> select-xml -xml $Types -xpath "//MethodName" Descripción ----------- En este ejemplo se muestra cómo canalizar un documento XML a Search-Path.
Ejemplo 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... ... Descripción ----------- En este ejemplo se muestra cómo utilizar el cmdlet Select-XML para buscar en los archivos de ayuda de cmdlet basados en XML de Windows PowerShell. El primer comando crea una tabla hash que representa el espacio de nombres XML y lo guarda en la variable $namespace. El segundo comando guarda la ruta de acceso a los archivos de ayuda en la variable $path. El tercer comando usa Select-Xml para buscar nombres de cmdlet en el XML mediante la búsqueda de etiquetas Command:Name en los archivos.
Ejemplo 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 Descripción ----------- En este ejemplo se utiliza el parámetro Content de Select-XML para buscar contenido XML en una cadena multilínea intercalada en el código. El primer comando guarda en la variable $xml la cadena multilínea intercalada en el código. El segundo comando usa el parámetro Content para especificar el contenido XML de la variable $xml. El tercer comando es equivalente al segundo. Utiliza un operador de canalización (|) para enviar el contenido XML almacenado en la variable $xml al cmdlet Select-XML. Para obtener más información sobre las cadenas multilínea intercaladas en el código, escriba about_Quoting_Rules.
Vea también