Necesito saber como podría generar un archivo XML, la conexión desde PHP a Oracle ya la tengo, puedo realizar consultas y todo eso, pero no entiendo como generar un XML con los datos de consulto...
Respuesta
1
1
Anónimo
Ante todo, debes tener en cuenta que un XML es un documento que tiene la estructura que tu quieras darle. Lo primero sería tener claro como funciona XML (cual es su estructura). Lo segundo es dominar las funciones DOM propias de php (mira el siguiente enlace http://es.php.net/manual/en/refs.xml.php) para generar la estructura que desees. ¿En qué punto estas?
Gracias! Ya pude generar un XML sencillo, pero si me puedes ayudar a craear la siguiente estructura: - Cuidad Instalados - General Medidores Repetidores Gateways - Zonas (El numero de zonas no son estáticas) - General Medidores Repetidores Gateways + Edificios () Isla + Cuidad no instalados Pude lograr la generación del XML pero solo con un nodo, traendo los datos de la base, pero se me complica un poco y me pierdo cuando quiero insertar un hijo a los nodos... if($dbCon->Ejecutar($vcn,$PARAMS_ORACLE["esqusr"].".PRUEBAS.sp_GetData",$Param,&$vCur)){ $bValido = OCIExecute($vCur); $column_name = oci_num_fields($vCur); if($bValido){ while ($row = oci_fetch_assoc($vCur)){ $tree = $outXML->createElement("item"); $tree = $raiz->appendChild($tree); $tree->setAttribute("id", $row['CODIGO']); $tree->setAttribute("text",$row['ZONA']); $isla = $outXML->createElement("item"); $isla = $tree->appendChild($isla); $isla->setAttribute("id",8000); $isla->setAttribute("text","ISLA"); } } El resultado de eso en el web es: - ZONA 25 ISLA - ZONA 27 ISLA - ZONA n+1 ISLA ... De ante mano nuevamente te quedo agradecido por tu valiosa colaboración... si no me explico avisame para tratar de ser más especifico... GRACIAS Que tengas un Buen Días.
Viendo que ya te has documentado con respecto al uso de las funciones DOM, el resto es pura programación y un poquito de lógica. Lo primero que observo (y hecho en falta) es el Query que ejecutas. Ten en cuenta, que para facilitarte las dependencias jerárquicas, el Query debe devolverte una consulta ordenada por aquellos campos que tu consideres nodos primordiales o importantes (creo que en tu caso, zona). Así, una vez ordenada dicha lista, te sería fácil detectar los puntos de ruptura (es decir, cambios en el valor Zona) momento en el cuál haría un "appendChild". Imagina que dicha lista ordenada, en vez de dentro de un XML la quisieras mostrar en una tabla HTML visual. A nivel estructural ambos códigos son muy parecidos. Detectarías cambios de filas TD (para la creación de un elemento) y cambios de grupos TR (para la creación de nodos). Creo que con esta información y un poquito de práctica deberías obtener el resultado deseado.
Gracias Amigo, por tu gran ayuda, con todo lo que me has indicado ya tengo un poquito más de noción de lo que tengo que realizar... Agradecido me despido hasta una próxima oportunidad... Gracias y ten Buen Día