PowerShell: convertir archivos XML a CSV
Con los cmdlets Export-CSV y ConvertTo-CSV en PowerShell, puede convertir un archivo XML a un archivo CSV.
XML (Lenguaje de marcado extensible) es un lenguaje de marcado similar a HTML, donde puedes definir tus propias etiquetas para almacenar y transportar datos. Es legible por humanos y máquinas y se puede analizar fácilmente.
El archivo CSV (valores separados por comas) almacena los datos en un formato tabular donde cada valor está separado por una coma delimitadora, una semicolumna o cualquier otro carácter.
En este artículo, analizaremos cómo convertir archivos XML a CSV utilizando los cmdlets Export-CSV y ConvertTo-CSV.
PowerShell: XML a CSV mediante Export-CSV
El cmdlet Export-CSV en PowerShell crea un archivo CSV a partir de la entrada del objeto y exporta el archivo CSV a la ubicación especificada.
Consideremos un ejemplo para convertir XML a CSV en PowerShell.
Get-Content -Path D:\LogTest\FTP-02\PowerShell_Books.xmlEn el script de PowerShell anterior, utilizamos el cmdlet Get-Content para leer el contenido del archivo XML y mostrarlo.
El resultado del comando anterior es:
PS D:\> Get-Content -Path D:\LogTest\FTP-02\PowerShell_Books.xml <?xml version="1.0"?>
<catalog>
<book id="b101">
<author>ShellGeek</author>
<title>PowerShell Guide</title>
<genre>Programming</genre>
<price>50</price>
<publish_date>2022-01-01</publish_date>
<description>Master the PowerShell in 30 days</description>
</book>
<book id="b102">
<author>Microsoft</author>
<title>Windows PowerShell</title>
<genre>Programming</genre>
<price>25</price>
<publish_date>2021-12-16</publish_date>
<description>Step by Step Windows PowerShell</description>
</book>
</catalog>
PS D:\> Almacena el contenido del archivo XML en una variable $xmlFile. En XML, cada elemento del archivo XML es un nodo de elemento.
Para convertir el archivo XML en un archivo CSV, debemos atravesarlo hasta los nodos secundarios XML y pasarlo como entrada al comando Export-CSV en PowerShell.
El comando Exportar-CSV toma nodos XML como entrada para crear un archivo CSV a partir de los nodos secundarios XML y exportarlos a un archivo CSV con una coma delimitadora.
$xmlFile = Get-Content -Path D:\LogTest\FTP-02\PowerShell_Books.xml
$xmlFile.catalog.ChildNodes | Export-Csv -Path D:\LogTest\FTP-02\PowerShell_Books.csv -NoTypeInformation -Delimiter:"," El resultado del script de PowerShell anterior para la salida XML a un archivo CSV usando el cmdlet Export-CSV es:
En el resultado anterior, exporta XML a un archivo CSV y, utilizando el comando Get-Content, leemos el archivo CSV y mostramos información en el terminal PowerShell.
Consejo interesante: ¡Cómo dividir el archivo grande en archivos más pequeños usando PowerShell!
Archivo PowerShell XML ConvertTo-CSV
Con el cmdlet ConvertTo-CSV en PowerShell, puede convertir el archivo XML en un archivo CSV.
Nos referiremos al archivo PowerShell_Books.xml utilizado en el ejemplo anterior. Este archivo XML contiene información sobre libros.
Para convertir un archivo XML a CSV para nodos XML de Libros, utilice el comando ConvertTo-CSV como se indica a continuación.
$xmlFile = Get-Content -Path D:\LogTest\FTP-02\PowerShell_Books.xml
$xmlFile.catalog.ChildNodes | ConvertTo-Csv -NoTypeInformation -Delimiter:"," | Set-Content -Path D:\LogTest\FTP-02\PowerShell_Books_2.csv
Get-Content -Path D:\LogTest\FTP-02\PowerShell_Books_2.csv En el script de PowerShell anterior, el comando Get-Content lee el contenido del archivo XML y lo almacena en la variable $xmlFile.
Esta variable $xmlFile contiene nodos XML completos y los pasa como entrada al comando ConvertTo-CSV que utiliza el carácter Delimeter coma para el archivo CSV. Luego pasa el contenido del archivo CSV a Set-Content para escribirlo en la ruta del archivo especificada.
El resultado del script de PowerShell anterior para exportar nodos XML a CSV usando el comando ConvertTo-CSV es:
Consejo interesante: ¡Cómo exportar CSV con la fecha en el nombre del archivo usando PowerShell!
Conclusión
Espero que el artículo anterior sobre cómo convertir un archivo XML a CSV utilizando el archivo Export-CSV y ConvertTo-CSV le resulte útil.
Puede encontrar más temas sobre los comandos de PowerShell Active Directory y los conceptos básicos de PowerShell en la página de inicio de ShellGeek.

