Saltar al contenido
Codif铆ca.me | Desarrollo web | Programaci贸n

Convertir XML a CSV con PHP o desde Linux

17 noviembre, 2016
xml-to-csv-conversion-tool-convert-xml-file-to-csv

Hoy os traigo este post, que como adivinar谩s trata de c贸mo pasear un fichero XML a CSV utilizando PHP . (Esta redundancia del t铆tulo da puntos para el SEO) 馃槈

Bien, el c贸digo es simple, utilizamos la funci贸n simplexml_load_file para capturar el xml y despu茅s crearemos el CSV con ayuda de la funci贸n createCsv que pondr谩 en columnas cada nodo xml que se vaya encontrando.

xml-to-csv-conversion-tool-convert-xml-file-to-csv
Este es el c贸digo:

$Archivo='convertido.xml';
 
    if (file_exists($Archivo)) 
           {
       $xml = simplexml_load_file($Archivo);
       $f = fopen('convertido.csv', 'w');
       createCsv($xml, $f);
       fclose($f);
    }
 
    function createCsv($xml,$f)
    {
 
        foreach ($xml->children() as $item) 
        {
 
           $hasChild = (count($item->children()) > 0)?true:false;
 
        if( ! $hasChild)
        {
           $put_arr = array($item->getName(),$item); 
           fputcsv($f, $put_arr ,',','"');
 
        }
        else
        {
         createCsv($item, $f);
        }
     }
 
    }

Por si te gusta m谩s hacerlo desde linux, puedes instalar la libreria xml2 en tu equipo, y convertir facilmente tu xml en csv,

para esto, solo tienes que instalar y ejecutar el comando:

Instalar

sudo apt-get install xml2

Ejecutando

xml2 <tufichero.xml> tufichero.txt

y listo, lo abres desde un editor de csv y te leer谩 correctamente los campos.