Seleccionar atributos en XML usando XPath

Rohan Timalsina 30 enero 2023
  1. Use el cmdlet Select-Xml para seleccionar atributos en XML en PowerShell
  2. Utilice el método SelectNodes para seleccionar atributos en XML en PowerShell
  3. Use el cmdlet Get-Content para seleccionar atributos en XML en PowerShell
Seleccionar atributos en XML usando XPath

XML significa Lenguaje de marcado extensible. Un archivo XML es un archivo de texto sin formato que tiene etiquetas personalizadas para definir la estructura del documento.

Se utiliza principalmente para almacenar y compartir información estructurada. El contenido del archivo XML se parece al archivo HTML.

Este tutorial presentará diferentes métodos para seleccionar atributos en XML usando XPath en PowerShell.

Use el cmdlet Select-Xml para seleccionar atributos en XML en PowerShell

El cmdlet Select-Xml le permite buscar texto en una cadena o documento XML usando XPath.

Este es un ejemplo simple de un archivo XML.

<website>
<site name="DelftStack">
<content>
<topic>PowerShell Howtos</topic>
<article>How to convert XML into CSV?</article>
</content>
</site>
<site name="DelftStack">
<content>
<topic>Linux Howtos</topic>
<article>Delete Files Recursively in Linux</article>
</content>
</site>
</website>

El siguiente comando busca la consulta XPath topic en un archivo new.xml en el directorio C:\Users\rhntm.

Select-Xml -Path C:\Users\rhntm\new.xml -XPath "//topic" | Select-Object -ExpandProperty Node

Producción :

#text
-----
PowerShell Howtos
Linux Howtos

El parámetro -Path especifica la ruta y los nombres de archivo de los archivos XML para buscar.

El parámetro -XPath especifica una consulta XPath para buscar. El texto de la consulta distingue entre mayúsculas y minúsculas.

Utilice el método SelectNodes para seleccionar atributos en XML en PowerShell

El método SelectNodes() selecciona una lista de nodos que coinciden con la expresión XPath en un archivo XML.

El siguiente ejemplo selecciona el nodo content de un archivo new.xml.

[xml]$xml = Get-Content 'C:\Users\rhntm\new.xml'
$xml.SelectNodes('//content')

Producción :

topic             article
-----             -------
PowerShell Howtos How to convert XML into CSV?
Linux Howtos      Delete Files Recursively in Linux

El [xml] convierte la variable como un objeto XML. El cmdlet Get-Content obtiene el contenido de un C:\Users\rhntm\new.xml y lo guarda en la variable $xml.

Para seleccionar el atributo específico, puede utilizar el cmdlet Select-Object. Por ejemplo, el siguiente comando selecciona sólo el article de un archivo new.xml.

[xml]$xml = Get-Content 'C:\Users\rhntm\new.xml'
$xml.SelectNodes('//content') | Select-Object article

Producción :

article
-------
How to convert XML into CSV?
Delete Files Recursively in Linux

Use el cmdlet Get-Content para seleccionar atributos en XML en PowerShell

Como ha visto anteriormente, el cmdlet Get-Content obtiene el contenido de un archivo XML. Puede guardar el contenido en una variable y convertirlo como un objeto XML.

El siguiente ejemplo muestra cómo usar Get-Content y seleccionar atributos en un archivo XML.

[xml]$xml = Get-Content 'C:\Users\rhntm\new.xml'
$xml.website.site.content.topic

Producción :

PowerShell Howtos
Linux Howtos

Esta es una manera fácil de usar si desea el valor de texto del archivo XML. Esperamos que esto le haya ayudado a seleccionar atributos en XML en PowerShell.

Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

Artículo relacionado - PowerShell XML