Generar XML a partir del contenido en una base de datos
Tener un XML con información de una base de datos puede ser muy útil, sobre todo si esa información queremos que esté disponible para que un programa externo disponga de ella. Lo que aquí vamos a hacer es crear un archivo .xml cuyo contenido va a ser los resultados del Recordset.
Tenemos la siguiente estructura:
| idmiembro | nombre | fecha_nacimiento | instrumento |
|---|---|---|---|
| 0 | Till Lindemann | 04-01-1963 | vocales |
| 1 | Richard Z. Kruspe | 24-06-1967 | guitarra |
| 2 | Paul Landers | 09-12-1964 | guitarra |
| 3 | Christoph Schneider | 11-05-1966 | batería |
| 4 | Oliver Riedel | 11-04-1971 | bajo |
| 5 | Flake Lorenz | 06-11-1966 | teclados |
Comenzamos con nuestro archivo .php
Establecemos la conexión con la base de datos
$hostname = 'localhost'; $database = 'database'; $username = 'user'; $password = 'pass'; $friendlypin_com = mysql_pconnect($hostname, $username, $password) or trigger_error(mysql_error(),E_USER_ERROR);
Creamos el nuevo archivo .xml
$nombrexml = 'miembros.xml'; $mixml = fopen($nombrexml,'w+'); $contenido = ' < ?xml version="1.0" encoding="iso-8859-1"?>‘; fwrite($mixml,$contenido);
Creamos un recordset con el que extraemos los datos de la tabla y mientras se van extrayendo los campos, vamos generando el contenido del XML
$contenido = '';
$query_Recordset1 = 'Select nombre, pincode, password from usuarios';
$Recordset1 = mysql_query($query_Recordset1, $friendlypin_com) or die(mysql_error());
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
for ($i=0;$i< =$totalRows_Recordset1;$i++){
$row_Recordset1 = mysql_fetch_array($Recordset1);
$contenido = $contenido."
“;
//Concatenamos lo que había antes en la variable + lo que introducimos
}
//Guardamos los datos
fwrite($mixml,$contenido);
Tras guardar los datos tenemos que cerrar la parte de <miembros>.
$contenido = ""; fwrite($mixml, $contenido); fclose($mixml); //Cerramos el xml
Tras esto, el código xml quedaría así:
<?xml version="1.0" encoding="iso-8859-1"?> <miembros> <miembro idmiembro="0" nombre='Till Lindemann" fecha_nacimiento="04-01-1963" instrumento="vocales" /> <miembro idmiembro="1" nombre="Richard Z. Kruspe" fecha_nacimiento="24-06-1967" instrumento="guitarra" / > <miembro idmiembro="2" nombre="Paul Landers" fecha_nacimiento="09-12-1964" instrumento="guitarra" / > <miembro idmiembro="3" nombre="Christoph Schneider" fecha_nacimiento="11-05-1966" instrumento="bateria" / > <miembro idmiembro="4" nombre="Oliver Riedel" fecha_nacimiento="11-04-1971" instrumento="bajo" / > <miembro idmiembro=”5″ nombre=”Flake Lorenz” fecha_nacimiento=”06-11-1966″ instrumento=”teclados” / > </miembros>
Hola tu ejemplo me ayudo a solucionar un problema de verdad muy bueno tu ejemplo,
Gracias
Hola Andrea!
Me alegro mucho que te haya servido y gracias por visitar el blog
Salu2
Santi M.
y como podemos aplicar esto con llamando a este con flash
DISCULPA NO SE SI TALVEZ PODRIAS MANDARME UN EJEMPLO AL CORREO PORFA ES QUE ANDO ALGO ENRREDADO CON EL TEMA NO SE SI LLAMAR POR MEDIO
DE XML.LOAD(”MYXML.XML”) O XML.LOAD(”MYPHP.PHP”) PARA QUE LO CARGE
OJALAPUDIERAS MANDARME ALGUN EJEMPLITO QUE COMBINE AMBAS PORFAVOR
Hola… Me declaro principiante en el tema, sin embargo creo que tu ejemplo es muy claro… hasta donde lo he visto… lo pondré en practica para desarrollarlo en la Web que estoy realizando, espero volver con buenas noticias.
si le has mandado el “ejemplito” a José Antonio, te lo agradeceré también.
Salute!!!
Hola!
Tambien opino que el ejemplo es muy claro, pero yo lo necesito hacer en java. Necesito leer los datos de mysql desde una clase java, q me cree un XML y luego leer ese XML desde flash.
Alguna ayudita porfavor???
Gracias de antemano
hola, perdon, no me corre tu ejemplo, de hecho ocupo generar un archivo xml para mandarlo llamar desdde una funcion de api de google map, necesito sacar de una base de datos en mysql u oracle la latitud y longitud y generar el xml para que los datos sean procesados, me podrias mandar el archivo de arriba, por que lo copio y al parecer le faltan datos, es decir no se copia bien, mi correo es alcome2@hotmail.com
Me diste luz en mi proyecto, necesito q me ayudes en el puento en que ya tengo el xml creado implementar un xslt para visualizarlo….
Hola! si me pudieras mandar el archivo a mi correo, te lo agradeceria mucho, ya que siguiendo las instrucciones del tutorial, si crea el archivo xml, pero solo contiene lo primero que graba que es , por tu atencion gracias.
oye tu articulo esta muy bueno, la verdad es que es muy claro, pero no se si se pueda hacer lo mismo para java o si tengas un ejemplo mejor ojala y me lo puedas enviar .
saludos
agradeceria mucho poder ver le codigo completo pues a pesar de utilizar un php con el contenido :
‘;
fwrite($mixml,$contenido);
$contenido = ‘’;
$query_Recordset1 = ‘Select titulo, fecha, contenido, imagen from noticias’;
$Recordset1 = mysql_query($query_Recordset1, $friendlypin_com) or die(mysql_error());
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
for ($i=0;$i
este proporciona un error al ejecutar el php:
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /usr/home/xml/prueba4.php on line 14
muchas gracias por vuestra atencion
eso es lo que yo llamo un ejemplo de lujo!!!!!
No nada mas me ayudo con lo que necesita, sino a demas era algo muy pero muy parecido a lo que yo necesitaba asi que casi que lo unico que cambie de tu codigo fueron el query y el connect….
que pasa con las Ñ, ñ, á, é, í, ó, ú….????
Hola…
Tengo un problemita, soy novata en esto, a ver si tu me puedes ayudar….Te explico, tengo un formulario que me muestra datos de una tabla, en ese mismo formulario tengo un botón que me lleva a otro formulario de una tabla distinta, lo que me gustaria hacer es, con un recordset, guardar los datos que tengo en el primer formulario para que cuando le de al botón y me lleve al otro formulario, que me volque los datos en el formulario que se abre cuando le doy al botón.
Muchas gracias
hola de nuevo….
en mi caso trabajo con access, son formularios en access, pero supongo que no cambiara demasiado, de todas formas gracias.
Hola
Soy principiante en esto, entonces estoy aplicando el ejemplo, pero siempre me sale el mismo error:
Parse error: parse error in c:\archivos de programa\easyphp1-8\www\turis\turismo.php on line 15
No se a que se debe es en lo unico que tengo problema.
Les agradeceria me respondieran.
Gracias
Hola Alondra?
Como bien dice es un error de parseo del php, pero me temo que como no seas más explícito y digas algo más no puedo ayudarte.
Salu2
Santi M.
tu codigo esta incompleto en la parte de :
$row_Recordset1 = mysql_fetch_array($Recordset1);
$contenido = $contenido.”
“;
//Concatenamos lo que había antes en la variable + lo que introducimos
No se ve donde se introduce el valor de cada campo a $contenido…
Hola me parece muy interesante el tema de xml, aqui les dejo el links de nuestro sitio espero lo visiten y se enteren de nuestros avances.
http://www.blog.espol.edu.ec