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.
$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.