Comunidad de diseño web y desarrollo en internet online

PROBLEMAS CON GALERIA XML

Citar            
MensajeEscrito el 25 Mar 2012 07:08 pm
Hola gente, tengo un problema que no se porque no puedo solucionar (si es que se puede), tengo una galeria XML en la que cargo las imagenes segun su tipo por ej:

Código XML :

<image src="1.jpg" desc="Imagen1" tipo="1"/>
<image src="2.jpg" desc="Imagen2" tipo="1"/>
<image src="3.jpg" desc="Imagen1" tipo="2"/>


En flash quiero cargar las imagenes segun su "tipo" o sea... que si quiero que se carguen las del tipo 1 me muestre solo esas dos que estan.

En el flash lo hago asi

Código ActionScript :

intSlideCount = xmlSlideshow..image.(@tipo==ruta).length();


Bien, el problema es que a la hora de cargar los del tipo 2 no me lo carga, me muestra la primer imagen, pero si modifico el XML asi

Código XML :

<image src="3.jpg" desc="Imagen1" tipo="2"/>
<image src="1.jpg" desc="Imagen1" tipo="1"/>
<image src="2.jpg" desc="Imagen2" tipo="1"/>


entonces si lo toma, es como que lo busca por orden, como podria hacer que me busque la imagen sin importar la posicion del atributo?.
Gracias.

Por julito12

20 de clabLevel



 

msie
Citar            
MensajeEscrito el 28 Mar 2012 11:55 am
como va,,, por lo que veo estas haciendo bien el filtrado, el tema es cuando el filtro devuelve solo un resultado. Devolver te devuelve un nodo cuando filtras @tipo=='2', lo que imagino que te debe suceder es que al tracear el xmllist no te muestra nada, eso es porque solo hay un nodo y es de contenido vacio.

Proba estos ejemplos

nodo vacio:

Código ActionScript :

var xml:XML = <data><image src="1.jpg" desc="Imagen1" tipo="1"/>
<image src="2.jpg" desc="Imagen2" tipo="1"/>
<image src="3.jpg" desc="Imagen1" tipo="2"/></data>;
trace(xml..image.(@tipo=='2').length()); // devuelve 1, asi que hay al menos un nodo
trace(xml..image.(@tipo=='2')); //no devuelve nada xq el unico nodo que hay esta vacio

var xmllist:XMLList = xml..image.(@tipo=='2');

for each(var c:XML in xmllist)
{
   trace(c.@src + " " + c.@desc + " " + c.@tipo); //devuelve 3.jpg Imagen1 2
}


nodo con contenido:

Código ActionScript :

var xml:XML = <data><image src="1.jpg" desc="Imagen1" tipo="1"/>
<image src="2.jpg" desc="Imagen2" tipo="1"/>
<image src="3.jpg" desc="Imagen1" tipo="2"><nombre>foto.jpg</nombre></image></data>;
trace(xml..image.(@tipo=='2').length()); // devuelve 1, asi que hay al menos un nodo
trace(xml..image.(@tipo=='2')); //aca si devuelve algo visible xq el unico nodo que hay tiene contenido
var xmllist:XMLList = xml..image.(@tipo=='2');

for each(var c:XML in xmllist)
{
   trace(c.@src + " " + c.@desc + " " + c.@tipo); //devuelve 3.jpg Imagen1 2
}


Y si por ejemplo,,, vos quere formar un nuevo xml a partir del xmllist,,, seria asi:

Código ActionScript :

var xml:XML = <data><image src="1.jpg" desc="Imagen1" tipo="1"/>
<image src="2.jpg" desc="Imagen2" tipo="1"/>
<image src="3.jpg" desc="Imagen1" tipo="2"><nombre>foto.jpg</nombre></image></data>;
trace(xml..image.(@tipo=='2').length()); // devuelve 1, asi que hay al menos un nodo
trace(xml..image.(@tipo=='2')); //aca si devuelve algo visible xq el unico nodo que hay tiene contenido
var xmllist:XMLList = xml..image.(@tipo=='2');

var xml2:XML = new XML('<data>' + xmllist.toXMLString() + "</data>");

trace(xml2.toXMLString());




Con esto ultimo habras descubierto que lo mejor para obtener el contenido real de un xml o xmllist es utilizar el metodo toXMLString(). jeje ;)


espero que te haya sido de ayuda


Saludos



eXe

Por exekiel21

Claber

164 de clabLevel



Genero:Masculino  

programador

chrome
Citar            
MensajeEscrito el 30 Mar 2012 05:33 pm
Hola, muchas gracias por responder, me sirvió mucho. ;)

Por julito12

20 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.