En Flash, cuando trabajas con archivos XML complejos es engorrozo...
Veamos...
tengo el siguiente XML.... (En caso que este mal hecho simplemente me avisan. y me sugieron como hacerlo...)
Código HTML:
<?xml version="1.0" encoding="utf-8"?> <contenido> <pagina menus="La Empresa"> <submenu> <subitem>ICSA</subitem> <subitem>Mision, Vision y Valores</subitem> <subitem>Trayectoria</subitem> <subitem>Calidad</subitem> </submenu> <informacion>Info del Item la Empresa</informacion> <infoabajo>Mas Info de la Empresa</infoabajo> </pagina> <pagina menus="Soluciones"> <submenu> <subitem>Energia y Medio Ambiente</subitem> <subitem>Infraestructura</subitem> <subitem>Oil & Gas</subitem> </submenu> <informacion>Info de Soluciones</informacion> <infoabajo>Mas Info de Soluciones</infoabajo> </pagina> <pagina menus="Productos y Servicios"> <submenu> <subitem>Productos 1</subitem> <subitem>Productos 2</subitem> </submenu> <informacion>Info de Productos y Servicios</informacion> <infoabajo>Mas Info de Productos y Servicios</infoabajo> </pagina> <pagina menus="Investigación"> <submenu> <subitem>Tendencias</subitem> <subitem>Desarrollo</subitem> </submenu>> <informacion>Info de Investigacion y Desarrollo</informacion> <infoabajo>Mas Info de Investigacion</infoabajo> </pagina> <pagina menus="Contacto"> <submenu> <subitem>Clientes</subitem> <subitem>Comercial</subitem> </submenu>> <informacion>Informacion de Contacto</informacion> <infoabajo>Mas Info de Contacto</infoabajo> </pagina> </contenido>
Explico.... <pagina menus="menu_cabecera"> el contenido del atributo lo uso para el menu principal...
Sub menu para cada menu de la cabecera- Y AQUI ES DONDE TENGO EL INCOMBENIENTE....
<submenu><subitem>Sub Menu</subitem></submenu>
Cuando consulto desde flash.... me es imposible consultar todos los datos bien, me consulta los submenu del primer nodo... pero despues no logro encontrar los submenu de las demas...
Este es mi actionScript...
Código PHP:
System.useCodepage = true;
var indice:Number;
var estructura_xml:XML;
function cargarMenu(_indice:Number) {
var menu:String;
menu = estructura_xml.firstChild.childNodes[_indice].attributes.menus;
return menu;
}
function cargarSubmenu(_indice:Number,_indice2:Number) {
var submenu:String;
submenu = estructura_xml.firstChild.firstChild.childNodes[_indice].childNodes[_indice2].firstChild.nodeValue;
return submenu;
}
function cargarContenido(_indice:Number) {
var contenido:String;
contenido = estructura_xml.firstChild.childNodes[_indice].firstChild.nextSibling.firstChild.nodeValue;
return contenido;
}
function cargarContenidoAbajo(_indice:Number) {
var contenidoabajo:String;
contenidoabajo = estructura_xml.firstChild.childNodes[_indice].lastChild.firstChild.nodeValue;
return contenidoabajo;
}
estructura_xml = new XML();
estructura_xml.ignoreWhite = true;
estructura_xml.load("../xml/icsa_web.xml");
estructura_xml.onLoad = function() {
//*********************************************
_global.menu1 = cargarMenu(0);
_global.menu2 = cargarMenu(1);
_global.menu3 = cargarMenu(2);
_global.menu4 = cargarMenu(3);
_global.menu5 = cargarMenu(4);
//**********************************************
_global.submenu1 = cargarSubmenu(0,0);
_global.submenu2 = cargarSubmenu(0,1);
_global.submenu3 = cargarSubmenu(0,2);
_global.submenu4 = cargarSubmenu(0,3);
//----------------------------------------------
_global.submenu5 = cargarSubmenu(1,4);
_global.submenu6 = cargarSubmenu(1,1);
_global.submenu7 = cargarSubmenu(1,2);
//----------------------------------------------
_global.submenu8 = cargarSubmenu(2,0);
_global.submenu9 = cargarSubmenu(2,1);
//----------------------------------------------
_global.submenu10 = cargarSubmenu(3,0);
_global.submenu11 = cargarSubmenu(3,1);
//----------------------------------------------
_global.submenu12 = cargarSubmenu(4,0);
_global.submenu13 = cargarSubmenu(4,1);
//**********************************************
_global.contenido1 = cargarContenido(0);
_global.contenido2 = cargarContenido(1);
_global.contenido3 = cargarContenido(2);
_global.contenido4 = cargarContenido(3);
_global.contenido5 = cargarContenido(4);
//**********************************************
_global.contenidoabajo1 = cargarContenidoAbajo(0);
_global.contenidoabajo2 = cargarContenidoAbajo(1);
_global.contenidoabajo3 = cargarContenidoAbajo(2);
_global.contenidoabajo4 = cargarContenidoAbajo(3);
_global.contenidoabajo5 = cargarContenidoAbajo(4);
};
stop();
Despues solo coloco la informacion de la web...
<informacion>Informacion </informacion>
<infoabajo>Mas Info</infoabajo>
Por favor una ayuda gracias....