![Antiguo](http://static.forosdelweb.com/fdwtheme/images/statusicon/post_old.gif)
24/05/2011, 10:05
|
| | Fecha de Ingreso: octubre-2010
Mensajes: 1
Antigüedad: 14 años, 4 meses Puntos: 0 | |
Respuesta: creacion de archivo xml con php Soy nuevo en el foro, sin embargo les envio esto.
<?php
/* Crea un archivo con extensión y formato XML, la información se toma de una base de datos mysql, los nombres de los campos son las etiquetas y en base al query es la cantidad de campos a mostrar.
Es un script general unicamente cambie el nombre de la base de datos, el nombre de la tabla y los campos a utilizar, si pone el asterisco crea el archivo xml con todos los campos de la tabla
Una vez que lo corra abra el archivo lista.xml con Bloc de Notas */
$hostname_constructora = "localhost"; //nombre del servidor
$database_constructora = "test"; //NOMBRE DE LA BASE DE DATOS
$username_constructora = "root"; // nombre de usuario
$password_constructora = "80"; //contraseña del usuario
$constructora = mysql_pconnect($hostname_constructora, $username_constructora, $password_constructora) or trigger_error(mysql_error(),E_USER_ERROR);
// conectando a la base de datos
mysql_select_db($database_constructora, $constructora);
$query_informe = "SELECT * FROM listas"; //NOMBRE DE LOS CAMPOS Y NOMBRE DE LA TABLA
$informe = mysql_query($query_informe, $constructora) or die(mysql_error());
$totalRows_informe = mysql_num_rows($informe);
$campo=array();
for ($i=0; $i<mysql_num_fields($informe); $i++) // numero de campos
{
$campo[$i]=mysql_field_name($informe, $i); // nombre de cada campo
}
$nombre="lista.xml"; // creando el archivo de salida xml
// crea un archivo de escritura y lectura
$lista= fopen($nombre,"w+") or die ("No se pudo abrir o crear el archivo");
// \r\n estas lineas son para dar un return y una nueva linea (en este orden)
// \t para realizar una tabulacion
fwrite($lista,'<?xml version="1.0" encoding="ISO-8859-1"?>'."\r\n");
fwrite($lista,"<estructura>"."\r\n"); // etiqueta raiz
$variable=array();
while ($row_informe = mysql_fetch_assoc($informe)) // recorriendo el arreglo
{
fwrite($lista,"\t"."<elemento>"."\r\n"); // etiqueta que divide por registro
for ($i=0; $i<mysql_num_fields($informe); $i++)
{
$row_informe[$campo[$i]]=trim($row_informe[$campo[$i]]);
// creando las etiquetas y contenido para el archivo xml
$variable[$i]="<".$campo[$i].">".$row_informe[$campo[$i]]."</".$campo[$i].">"."\r\n";
/* escrbe en el archivo con 2 tabulaciones al inicio y los nombres de los campos los convierte a letra minúscula */
fwrite($lista,"\t\t".strtolower($variable[$i]));
}
fwrite($lista,"\t"."</elemento>"."\r\n"); // cierre de etiqueta con 1 tabulacion
fwrite($lista,"\r\n");
}
fwrite($lista,"</estructura>"."\r\n"); // cierre de etiqueta raiz
fclose($lista) or die("el archivo no se pudo cerrar correctamente"); // cerrando el archivo
mysql_free_result($informe); // liberando memoria
echo "todo listo";
?> |