lo de arriba se parece a los errores que me daba php y mysql xD
santoel25
deberías pensar en redefinir la estructura del XML
te sugiero esta:
archivo:
productos.xml Código HTML:
<?xml version="1.0" encoding="UTF-8"?>
<productos>
<tipo nombre="comedores">
<producto nombre="DOVER" descripcion="Muebles" precio="16.54" otro_attributo="sd fadfa" />
<producto nombre="VERA" descripcion="Mueble Vera" precio="65.4" otro_attributo="sds gfdg" />
<producto nombre="CERA" descripcion="Mueble cera" precio="45.62" otro_attributo="sjk dfad klfa" />
<producto nombre="MARA" descripcion="Mueble mara" precio="12.51" otro_attributo="dsr gsdfa dfa" />
<producto nombre="TARA" descripcion="Mueble tara" precio="48.24" otro_attributo="sjfhjdfa dffghja" />
</tipo>
<tipo nombre="mesas">
<producto nombre="mesa1" descripcion="Vera" precio="48.52" otro_attributo="sdf dfad s fa" />
<producto nombre="mesa2" descripcion="Veracidad" precio="81.32" otro_attributo="ad sdfsfgadfa" />
<producto nombre="mesa3" descripcion="Verano" precio="12.35" otro_attributo="th sdfa dfa" />
<producto nombre="mesa4" descripcion="Veracruz" precio="84.53" otro_attributo="sdfadg fa" />
<producto nombre="mesa5" descripcion="Veraalgo" precio="62.84" otro_attributo="sdfg sdfadfa" />
</tipo>
</productos>
esto te facilitará no sólo a hacer más comprensible el XML
sino a manejarlo con más facilidad con ACTIONSCRIPT
por ejemplo se puede crear funciones para consultar de manera muy facil los valores (prueba este código)
Código:
var productos_xml:XML = new XML();
productos_xml.ignoreWhite = true;
productos_xml.load('productos.xml');
//------------------------>
var valorSegunPosicion:Function = function(poscicionTIPO:Number,posicionPRODUCTO:Number,atributo:String):String{
return productos_xml.firstChild.childNodes[poscicionTIPO].childNodes[posicionPRODUCTO].attributes[atributo];
}
//------------------------>
var valorSegunNombre:Function = function(nombreTIPO:String,nombrePRODUCTO:String,atributo:String):String{
var lista:Array = new Array();
//--primero buscamos el nodo cuyo nombre coincida con el 'tipo' que queremos
//una vez que lo encontremos le asiganmos sus hijos nodos(childNodes) al array: lista
for(var i in productos_xml.firstChild.childNodes){
if(productos_xml.firstChild.childNodes[i].attributes.nombre == nombreTIPO){
lista = productos_xml.firstChild.childNodes[i].childNodes; break;
}
}
//--y ahora buscamos dentro del array 'lista' el nodo cuyo attributo nombren coincida con: 'producto'
//cuando lo encontremos, retornamos el valor del atrributo que estamos pidiendo
for(var i in lista){
if(lista[i].attributes.nombre == nombrePRODUCTO) return lista[i].attributes[atributo];
}
}
/* para usarlos
valorSegunPosicion(0,0,'descripcion')
valorSegunNombre('comedores','DOVER','descripcion')
te devolveran una cadena con el valor del attributo
*/
//------------------------->
//ejemplos de su uso (hacer click)
this.onMouseUp = function(){
trace('CONOCIENDO LAS POSICIONES EN EL ARBOL XML');
trace('atributo "nombre" de la posicion 0,0 = '+valorSegunPosicion(0,0,'nombre'));
trace('atributo "descripcion" de la posicion 0,0 = '+valorSegunPosicion(0,0,'descripcion'));
trace('atributo "precio" de la posicion 0,0 = '+valorSegunPosicion(0,0,'precio'));
trace('atributo "otro_attributo" de la posicion 0,0 = '+valorSegunPosicion(0,0,'otro_attributo'));
//------>
trace('CONOCIENDO LOS NOMBRES');
trace('descripcion del producto "DOVER" que pertenece al tipo "comedores" = '+valorSegunNombre('comedores','DOVER','descripcion'));
trace('precio del producto "DOVER" que pertenece al tipo "comedores" = '+valorSegunNombre('comedores','DOVER','precio'));
trace('otro_attributo del producto "DOVER" que pertenece al tipo "comedores" = '+valorSegunNombre('comedores','DOVER','otro_attributo'));
trace('descripcion del producto "mesa3" que pertenece al tipo "mesas" = '+valorSegunNombre('mesas','mesa3','descripcion'));
}
stop();
:D