Tema: Xml Y Flash
Ver Mensaje Individual
  #4 (permalink)  
Antiguo 15/03/2006, 11:34
Avatar de luistar
luistar
 
Fecha de Ingreso: marzo-2005
Ubicación: Argentina
Mensajes: 939
Antigüedad: 19 años, 1 mes
Puntos: 0
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
__________________
Si digo que soy mentiroso. ¿Lo soy?