Un bloc de notas

octubre 13, 2006

Crear un XML a partir de una consulta en Access

Filed under: Bases de Datos,Código Fuente,Lenguaje PHP,Programación — Chema @ 12:44 pm

Para acceder a Access hay que utilizar ODBC. Hay que crear una fuente de datos en la pestaña DSN de sistema del Administrador de orígenes de datos de sistema.
funcODBC2XML.php:

  Código:
 

<?

// Parámetros de entrada (al menos debe pasarse el 1). Si se desea utilizar el último,
// hay que poner los anteriores, aunque sea con la cadena vacía:
// 1: Respuesta obtenida a la ejecución de un odbc_do
// 2: Nombre del fichero XML en el que guardar los datos (se creará)
// 3: Nombre de la raíz XML, por defecho “datos”
// 4: Nombre de cada línea de datos XML, por defecto “línea”

function EchoODBC2XML()
{

if (func_num_args()<1) {

die(“EchoODBC2XML necesita un origen de datos”);

} else {

// Creo el documento XML
$xml=new DOMDocument(“1.0″,”utf-8″);
// Si adjunto una hoja de estilo XML descomento las dos siguientes líneas
// $estilo=$xml->createProcessingInstruction(‘xml-stylesheet’,’href=”estilos.xsl” type=”text/xsl”‘);
// $xml->appendChild($estilo);
if (func_num_args()>2) {

$raiz=$xml->createElement(func_get_arg(2));

} else {

$raiz=$xml->createElement(“datos”);

}
$raiz=$xml->appendChild($raiz);

while ($l = odbc_fetch_array(func_get_arg(0))) {

if (func_num_args()>3) {

$linea=$xml->createElement(func_get_arg(3));

} else {

$linea=$xml->createElement(“registro”);

}
$linea=$raiz->appendChild($linea);
foreach ($l as $nomCampo => $valorCol) {

$dato=$xml->createElement(utf8_encode($nomCampo));
$dato=$linea->appendChild($dato);
$info=$xml->createTextNode(utf8_encode($valorCol));
$info=$dato->appendChild($info);

}

}
if (func_num_args()==1) {

echo $xml->saveXML();

} else {

$xml->save(func_get_arg(1));
echo “\n<P>Datos grabados</P>\n”;

}

}

}

?>

Ejemplo de uso:

 
  Código:
 

<head>

<? require_once(“funcODBC2XML.php”); ?>

</head>

<body>

<?

$bd=odbc_connect(“BDAccess2XML”,”administrador”,””);
if (!$bd) {

die(“Error al conectar a la BD”);

} else {

$sql=”select * from personas order by cod”;
$resp=odbc_do($bd,$sql);EchoODBC2XML($resp,”listado.xml”,”todo”,”persona”);
odbc_close($bd);

}

?>

</body>

1 comentario »

  1. Que tal buen día.

    Quisiera generar un XML pero físico valla que no sea dinámico pero lo quiero hacer a partir de una base de datos de access.mdb cuando el archivo PHP sea ejecutado que se genere el XML ¿Me podrian ayudar de favor? se los agradeseria mucho : )

    Comentario por Richy — abril 11, 2011 @ 2:03 am | Responder


RSS feed for comments on this post. TrackBack URI

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Crea un blog o un sitio web gratuitos con WordPress.com.

A %d blogueros les gusta esto: