jueves, 24 de septiembre de 2015

Como crear un archivo XML con PHP


Generar un archivo xml  con php usando datos que están guardados en una base de datos no es muy difícil, solo hay que tener clara la estructura y el orden de las columnas, ser muy cuidadoso a la hora de armar el archivo para que los datos calsen donde deben.  A continuación les muestro un pequeño ejemplo, espero les sea de mucha utilidad. Manos a la obra.


Creamos el nombre del archivo dentro de una variable con extención .xml

$Name = 'prueba.xml';
$FileName = "./$Name";
$Header = '';
$Header .= "\r\n";

Luego colocamos las cabeceras que obligaran al documento a descargarse desde el navegador.

//Descarga el archivo desde el navegador
header('Expires: 0');
header('Cache-control: private');
header ("Content-type: text/xml"); // Archivo xml
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Content-Description: File Transfer');
header('Last-Modified: '.date('D, d M Y H:i:s'));
header('Content-Disposition: attachment; filename="'.$Name.'"');
header("Content-Transfer-Encoding: binary");

Para traer los datos de la base de datos, creamos la conexión y en una variable guardamos la consulta y la ejecutamos.

$c = mysql_connect("mysql", "usuario","contraseña ");
mysql_select_db("partmo");

$lista="SELECT * FROM tabla_consulta";
$consulta = mysql_query($lista);

Se arma la estructura del xml dentro de un while en el orden en que se encuentren las columnas de la tabla, incluyendo el nombre de la tabla donde se encuentra y el nombre de las columnas correspondientes, al finalizar cerramos la conexión, no debemos olvidar colocar ela etiqueta principal en este caso KITS por fuera del while.

header ("Content-type: text/xml");
echo("<kits>");

while ($dato=mysql_fetch_row($consulta)){
 echo("<kit>");
    echo("<linea>$dato[0]</linea>");
    echo("<marca>$dato[1]</marca>");
    echo("<tipo>$dato[2]</tipo>");
    echo("<modelo>$dato[3]</modelo>");
    echo("<fecha>$dato[4]</fecha>");
    echo("<motor>$dato[5]</motor>"); 
 echo("</kit>");  
}

echo("<kits>");
mysql_close();


1 comentario:

  1. muchas gracias señorita Leidy.
    tiene alguna forma de abrir el archivo xml en la misma aplicacion php?

    ResponderEliminar