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




Tabla de contenido