Anteriormente había publicado en "esta entrada" como generar un XML utilizando PHP, sin embargo esto no es muy útil si no disponemos de un contenido dinámico al cual queramos acceder, es por ello que en esta entrada explicare como agregar y modificar un poco el "ejemplo anterior" para crear un archivo dinámico a partir de una consulta SQL.
Lo primero es conectarnos con el servidor MySQL, la forma práctica de hacerlo es utilizando la librería MySQLi.
Lo primero es conectarnos con el servidor MySQL, la forma práctica de hacerlo es utilizando la librería MySQLi.
$bd = new mysqli('localhost', 'usuario_sql', 'clave_sql', 'bd_sql') or die("Error al conectar con MySQL-> ".mysql_error());Lo siguiente será modificar el script para hacer la consulta y almacenar los datos, como ya se ha explicado muchas veces como se hacen consultas SQL y manipulan datos en el blog, simplemente expondré el código:
<?php crear(); //Creamos el archivo leer(); //Luego lo leemos //Para crear el archivo function crear(){ $bd = new mysqli('localhost', 'usuario_sql', 'clave_sql', 'bd_sql') or die("Error al conectar con MySQL-> ".mysql_error()); $stmt = $bd->prepare("SELECT autor, titulo, anio, editorial FROM libros"); $stmt->execute(); $stmt->store_result(); $stmt->bind_result($autor, $titulo, $anio, $editorial); $xml = new DomDocument('1.0', 'UTF-8'); $biblioteca = $xml->createElement('biblioteca'); $biblioteca = $xml->appendChild($biblioteca); while($stmt->fetch()) { $libro = $xml->createElement('libro'); $libro = $biblioteca->appendChild($libro); $nodo_autor = $xml->createElement('autor', $autor); $nodo_autor = $libro->appendChild($nodo_autor); $nodo_titulo = $xml->createElement('titulo', $titulo); $nodo_titulo = $libro->appendChild($nodo_titulo); $nodo_anio = $xml->createElement('anio', $anio); $nodo_anio = $libro->appendChild($nodo_anio); $nodo_editorial = $xml->createElement('editorial', $editorial); $nodo_editorial = $libro->appendChild($nodo_editorial); } $stmt->free(); $bd->close(); $xml->formatOutput = true; $el_xml = $xml->saveXML(); $xml->save('libros.xml'); //Mostramos el XML puro echo "<p><b>El XML ha sido creado.... Mostrando en texto plano:</b></p>". htmlentities($el_xml)."<br/><hr>"; } //Para leerlo function leer(){ echo "<p><b>Ahora mostrandolo con estilo</b></p>"; $xml = simplexml_load_file('libros.xml'); $salida =""; foreach($xml->libro as $item){ $salida .= "<b>Autor:</b> " . $item->autor . "<br/>". "<b>Título:</b> " . $item->titulo . "<br/>". "<b>Ano:</b> " . $item->anio . "<br/>". "<b>Editorial:</b> " . $item->editorial . "<br/><hr/>"; } echo $salida; } ?>Y listo, ya con esto tenemos un XML que se genera a partir de un contenido que podemos modificar dinámicamente desde cualquier otra aplicación o programa, que es la idea...!!!
Recibe notificaciones por correo
2 Comentarios
Escribir ComentarioMuchas Gracias, Me servicio bastante para poder usarlo en el API de google maps, muy bien explicado y entendible. Sigo muchos de tus aportes, sigue haci
ResponderGenial gracias por el aporte
ResponderLamentablemente hay muchos usuarios en la red que han llegado al blog para escribir obscenidades, así que la moderación se hace necesaria. Recuerda utilizar un lenguaje correcto y espera a que sea aprobado.
Si necesitas publicar código haz click en "Conversión" para hacerlo legible.
ConversiónConversión