Foros del Web » Programando para Internet » PHP »

Clase para Generar XML en PHP

Estas en el tema de Clase para Generar XML en PHP en el foro de PHP en Foros del Web. Hola sres de forosdelweb, revisando documentacion en este foro encontre algo que me llamo mucho la atencion, puesto que actualmente debo generar XML en php ...
  #1 (permalink)  
Antiguo 29/10/2007, 14:55
 
Fecha de Ingreso: octubre-2007
Mensajes: 28
Antigüedad: 16 años, 6 meses
Puntos: 2
Clase para Generar XML en PHP

Hola sres de forosdelweb, revisando documentacion en este foro encontre algo que me llamo mucho la atencion, puesto que actualmente debo generar XML en php con datos que obtengo desde una BD, luego este XML debe ser consumido por FLEX...

Entonces mi problematica es generar XML, existen diversas apis como DOMXML, SimpleXML, etc etc... pero en este foro encontre una clase llamada GeckoXML que es de un moderador llamado GatorV http://www.forosdelweb.com/miembros/gatorv/

Esta clase segun me documente esta para PHP4 y PHP5, los pueden descargar en los siguientes links

Link php4
http://www.geocities.com/hurtghost/GeckoXML_4.php

Link php5
http://www.geocities.com/hurtghost/GeckoXML_5.php

Para generar un XML segun logre entender, debe ser:

PHP4
$xml = new GeckoXML("productos");
$producto1 = $xml->createNode("producto");
$producto1->setAttribute( "id", "1" );
$producto1->setData("lata");
$xml->appendChild($producto1);
$producto2 = $xml->createNode("producto");
$producto2->setAttribute("id", "2" );
$producto2->setData( "refresco" );
$xml->appendChild($producto2);

PHP5
$xml = new GeckoXML("productos");
$producto1 = $xml->createNode("producto");
$producto1->setAttribute( "id", "1" );
$producto1->setData("lata");
$producto2 = $xml->createNode("producto");
$producto2->setAttribute("id", "2" );
$producto2->setData( "refresco" );


Ahora al grano, mi duda es la siguiente, estoy intentando usar esa clase junto con AMFPHP y de esta forma consumir el XML en FLEX... tengo una duda de tipo codigo.. se debe poner require_once('GeckoXML.php') para usar la clase GeckoXML??

Estoy teniedo problemas para usar esa clase con AMFPHP

Mi Codigo

<?php
require_once('GeckoXML.php');
class Alvaro {

function XMLtoFLEX(){
$xml = new GeckoXML("productos");
$producto1 = $xml->createNode("producto");
$producto1->setAttribute( "id", "1" );
$producto1->setData("lata");
$xml->appendChild($producto1);
$producto2 = $xml->createNode("producto");
$producto2->setAttribute("id", "2" );
$producto2->setData( "refresco" );
$xml->appendChild($producto2);

return $xml
}
}
?>

Tengo dudas, puesto que soy novato en esto, incluso recien aprendi a usar AMFPHP con FLEX... ojala alguien pueda ayudarme a como usar la clase GeckoXML con AMFPHP, pueston que tengo problemas para ejecutar los servicios de amf cuando intento agregar con un include la clase gecko... desde ya muchas gracias


Alvaro Callata

Última edición por neodarklinux; 29/10/2007 a las 16:20
  #2 (permalink)  
Antiguo 30/10/2007, 10:28
 
Fecha de Ingreso: octubre-2007
Mensajes: 28
Antigüedad: 16 años, 6 meses
Puntos: 2
Re: Clase para Generar XML en PHP

Tengo problemas cuando quiero usar esa clase con AMFPHP.. esa clase hace de forma facil la construccion de un XML, imagienense construir un XML con puros "echo" , no seria nada facil si quiero construir un XML muy complejo, como son varios de mis casos... ojala alguien pueda ayudarme.... gracias.

Alvaro
  #3 (permalink)  
Antiguo 31/10/2007, 10:40
 
Fecha de Ingreso: octubre-2007
Mensajes: 28
Antigüedad: 16 años, 6 meses
Puntos: 2
Re: Clase para Generar XML en PHP

Doy por finalizada mi pregunta.. ya que de tanto buscar... pude generar de forma facil un XML con php5, que trae como nativo DOMXML

Mi funcion en AMFPHP

function XML($aprendi){
$conexion=pg_connect("host=localhost dbname=proyecto user=postgres password=123456") or die("error");
$resultado1=pg_query("SELECT apr_id,apr_descripcion FROM aprendizajes_esperados WHERE apr_id='".$aprendi."'")
or die("error al tratar de conectarse");
$resultado2=pg_query("SELECT ind_id,ind_descripcion FROM indicadores WHERE apr_id='".$aprendi."'")
or die("error al tratar de conectarse");
$cont = 0;
$doc = new DomDocument("1.0");
$root = $doc->createElement("AprendizajesEsperados");
$root = $doc->appendChild($root);
while($row=pg_fetch_array($resultado1)){
$aprendizaje = $doc->createElement("Aprendizaje");
$aprendizaje = $root->appendChild($aprendizaje);
$aprendizaje->setAttribute("id", $row["apr_id"]);
$aprendizaje->setAttribute("descripcion", $row["apr_descripcion"]);
}
while($row2=pg_fetch_array($resultado2)){
$indicador = $doc->createElement("indicador");
$indicador = $aprendizaje->appendChild($indicador);
$indicador->setAttribute("id", $row2["ind_id"]);
$text = $doc->createTextNode($row2["ind_descripcion"]);
$text = $indicador->appendChild($text);
}
return $doc;
}

Esto me genera un XML del siguiente formato

<?xml version="1.0"?>
<AprendizajesEsperados>
<Aprendizaje id="1" descripcion="Escuchan comprensivamente variados textos literarios">
<indicador id="4">Cuentan con sus propias palabras alg</indicador>
<indicador id="3">vacio</indicador>
<indicador id="2">Recuerdan los hechos importantes y los nombres de los personajes</indicador>
<indicador id="1">Se mantienen atentos mientras disfrutan de la narraci? lectura decuentos</indicador>
</Aprendizaje>
</AprendizajesEsperados>


Ojala le sirva a alguien que este pasando por lo mismo que yo pase... un colapso neurnal... ajjaa.. saludos

Alvaro Callata
Desarrollador FLEX
Temuco-Chile
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 18:26.