En este tip les mostraré una función para que puedan pasar cualquier resultado de MySQL a un archivo XML.
Funcionaría de la siguiente forma:
Código :
// forma simplificada $resultado = mysql_query('SELECT * FROM tabla'); header ('Content-type: text/xml'); echo mysql_XML($resultado); // se puede personalizar el nombre del documento y de cada item asi: echo mysql_XML($resultado, 'nombre del documento', 'nombre de cada item');
la funcion es la siguiente:
Código :
/* * Funcion para transformar un resultado de mysql en un archivo XML **/ function mysql_XML($resultado, $nombreDoc='resultados', $nombreItem='item') { $campo = array(); // llenamos el array de nombres de campos for ($i=0; $i<mysql_num_fields($resultado); $i++) $campo[$i] = mysql_field_name($resultado, $i); // creamos el documento XML $dom = new DOMDocument('1.0', 'UTF-8'); $doc = $dom->appendChild($dom->createElement($nombreDoc)); // recorremos el resultado for ($i=0; $i<mysql_num_rows($resultado); $i++) { // creamos el item $nodo = $doc->appendChild($dom->createElement($nombreItem)); // agregamos los campos que corresponden for ($b=0; $b<count($campo); $b++) { $campoTexto = $nodo->appendChild($dom->createElement($campo[$b])); $campoTexto->appendChild($dom->createTextNode(mysql_result($resultado, $i, $b))); } } // retornamos el archivo XML como cadena de texto $dom->formatOutput = true; return $dom->saveXML(); }
Si quieren pueden descargar el archivo con la función listo para ser importado.
Saludos!
¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.
Por Zguillez el 15 de Febrero de 2009
Por joarobles el 16 de Febrero de 2009
Por Freddie el 16 de Febrero de 2009
joarobles :
Por Juanlu_001 el 16 de Febrero de 2009
Buen tip!
Por daTO el 18 de Febrero de 2009
Deberá crearse de nuevo el XML cada vez que haya un registro nuevo, no ??
Entonces, las entradas del RSS aparecen TODAS como nuevas cada evz que se crea el XML ??
Por Ric el 25 de Marzo de 2009
Me da un error al intentar escribir un nombre que tiene acento en la base de datos Mysql (Martínez).
Alguien me puede decir cómo lo puedo corregir?
Gracias otra vez
Por kraiten el 08 de Abril de 2009
NO he trabajado mucho con xml y estoy algo perdido. He intentado implementar el código en mi web y me aparece el siguiente error:
Fatal error: Cannot clone object of class DOMDocument due to 'zend.ze1_compatibility_mode'
Alguien me puede echar un cable?
Si sirve de algo, tengo que decir que el xml que quiero generar debe contener una tabla con registros obtenidos de la base de datos.
Por isantos el 08 de Abril de 2009
gracias por la info...
saludos
Por Alfonso el 24 de Mayo de 2009
Muchas gracias por tu ayuda!!
Por Brundows el 11 de Agosto de 2009
Por hugo el 30 de Octubre de 2009
lo felicito
saludos
Por BJ el 07 de Diciembre de 2009
Por adrian_leo el 06 de Enero de 2010
Saludos,
adrian
Por violetisha el 13 de Enero de 2010
Muchas gracias joarobles .
Por David Perez el 23 de Enero de 2010
Esta bien esto de compartir y no reinventar la rueda.
Por hola necesito ayuda el 17 de Febrero de 2010
Por hola el 10 de Marzo de 2010
Por Jose Tapia el 19 de Mayo de 2010
Por rodo el 22 de Junio de 2010
Gracias!
Por Gaston el 26 de Agosto de 2010
Por Deimon el 09 de Septiembre de 2010
Por Carlos Alberto el 13 de Noviembre de 2010
Por Alex el 03 de Enero de 2011
Por Gonzalo el 18 de Enero de 2011
Por jorge el 26 de Enero de 2011
muchas gracias!
Por Said el 02 de Marzo de 2011
Por Lucas el 13 de Marzo de 2011
Por Hunter el 14 de Marzo de 2011
Por Ivan el 14 de Mayo de 2011
Por ctjquery el 24 de Mayo de 2011
Por yes! el 10 de Junio de 2011
iupiiii
Por Shawe el 15 de Junio de 2011
Por $PHP_LERNER el 22 de Junio de 2011
Es el mas didáctico que encontré.
Por Gilberto el 15 de Julio de 2011
Por geera el 16 de Julio de 2011
This page contains the following errors:
error on line 12 at column 6: XML declaration allowed only at the start of the document
Below is a rendering of the page up to the first error.
Por Norman el 08 de Agosto de 2011
http://pear.php.net/package/XML_Query2XML
Por Yamilquery el 07 de Septiembre de 2011
Por Night~ el 07 de Septiembre de 2011
Código :
Me gusta que el código queda más limpio (en mi opinión)
Por albert el 13 de Octubre de 2011
Por limbo992 el 20 de Octubre de 2011
Ubicación: http://localhost/xml1.php
Número de línea 1, columna 1: a ver si alguien sabe como solucionarlo. gracias
Por DBarlok el 24 de Noviembre de 2011
Por wilder el 15 de Septiembre de 2012