PowerShell: cómo convertir XML en cadena
A menudo es posible que desee utilizar PowerShell para convertir un objeto XML en una cadena.
Puede utilizar los siguientes métodos para hacerlo:
Método 1: utilizar OuterXml
[xml]$my_xml = Get-Content my_data.xml
$my_xml.OuterXml
Este ejemplo particular convertirá el objeto XML llamado $my_xml en una cadena.
Método 2: usar OuterXml y PreserveWhiteSpace
$my_xml = [xml]::new()
$my_xml.PreserveWhitespace = $true
$my_xml.Load('my_data.xml')
$my_xml.OuterXml
Este ejemplo particular generará el objeto XML llamado $my_xml en una cadena conservando el espacio en blanco del formato.
Los siguientes ejemplos muestran cómo utilizar cada método en la práctica.
Ejemplo 1: utilizar OuterXml para convertir XML en cadena
Supongamos que tenemos un archivo XML llamado my_data.xml en nuestro directorio actual.
Podemos usar el cmdlet Get-Content para ver el contenido de este archivo:
Podemos usar la siguiente sintaxis para cargar este archivo XML en un objeto llamado $my_xml y luego convertir el objeto en una cadena:
[xml]$my_xml = Get-Content my_data.xml
$my_xml.OuterXmlLa siguiente captura de pantalla muestra cómo utilizar esta sintaxis en la práctica:
Observe que la salida muestra el objeto XML como una cadena.
Ejemplo 2: utilizar OuterXml y PreserveWhiteSpace para convertir XML en cadena
Una vez más, supongamos que tenemos un archivo XML llamado my_data.xml en nuestro directorio actual:
Podemos usar la siguiente sintaxis para cargar este archivo XML en un objeto llamado $my_xml y luego convertir el objeto en una cadena, preservando al mismo tiempo el espacio en blanco en el formato del archivo:
$my_xml = [xml]::new()
$my_xml.PreserveWhitespace = $true
$my_xml.Load('my_data.xml')
$my_xml.OuterXmlLa siguiente captura de pantalla muestra cómo utilizar esta sintaxis en la práctica:
La salida muestra el objeto XML como una cadena.
Observe que se ha conservado el espacio en blanco en el formato del archivo.
Nota: Puede encontrar la documentación completa de la propiedad PreserveWhiteSpace en PowerShell aquí.


