Seleccionar atributos en XML usando XPath
-
Use el cmdlet
Select-Xml
para seleccionar atributos en XML en PowerShell -
Utilice el método
SelectNodes
para seleccionar atributos en XML en PowerShell -
Use el cmdlet
Get-Content
para seleccionar atributos en XML en PowerShell
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.