Trabajar con XML en Flex puede ser un dolor de cabeza, pero utilizando la llamada E4X es muitoooo fácil.
El E4X (ECMAScript para XML) es una "librería", agregó la acción de secuencias de comandos nativa de 3 a trabajar con usted en XML y están destinadas a simplificar el acceso a los archivos / contenido XML. Uso de E4X puede acceder a los elementos de XML como si fueran objetos de secuencias de comandos en acción.
He visto algunos tutoriales de la red, pero o están incompletos o son demasiado complejos ... así que puso manos a la obra y decidió escribir un tutorial para que puedan entender mejor en un claro y portugués.
Empecemos ...
Si alguien ha trabajado con XML de forma "normal / viejos" sabe que las cosas podrían ser complicadas, sin embargo, se complica por la naturaleza, principalmente con los métodos. FirstChild y childNodes en xml que es más complicado era simplemente un lío de trabajar con sí mismos y detectar errores en el código ...
Considere el siguiente código XML:
<article>
</ nome > <nombre> Tenis Nike </ nombre>
</ modelo > <Model> 90 </ tipo>
</ Tema>
<article>
</ nome > <nombre> Tenis Puma </ nombre>
</ modelo > <Model> Deporte divertido </ tipo>
</ Tema>
<article>
</ nome > <nombre> Tenis Adidas </ nombre>
</ modelo > <Model> AD 215 </ tipo>
</ Tema>
</ Store>
Este es un tipo de un simple XML, que puede ser representado en ActionScript, como este:
Muy simple hasta la fecha ...
Uso de E4X, que puede mostrar el contenido de nuestras acciones por MXL, véase:
es cada uno (var artículo en artigo ){ meuXML artículo ..) (
" Artigo: " + artigo . nome + " do modelo " + artigo . modelo ) ; trace ( "Regla:" + artículo. + nombre "de tipo" + artículo. modelo);
)
)
/ / O que podemos hacer aún más simple:
" artigos " + meuXML .. artigo .* ) ; trace ( "artículos" + meuXML artículo .* ..);
Y así vamos XML y nuestra lista de los temas ...
" artigo 1: " + meuXML .. artigo [ 1 ]) ; trace ( "Artículo 1:" + meuXML .. [1]);
/ / El nombre y el modelo en formato XML
" nome artigo 1: " + meuXML .. artigo [ 1 ] . nome . text ()) ; trace ( "nombre de artículo 1:" + meuXML .. [1]. nombre. texto ());
/ / Mostrar el contenido del primer artículo
" modelo artigo 1: " + meuXML . artigo [ 1 ] . modelo . text ()) ; trace ( "modelo de artículo 1:" + meuXML [1].. plantilla. texto ());
/ / Mostrar el contenido del primer artículo
" id do artigo 1: " + meuXML .. artigo [ 1 ] .@ id ) ; trace ( "id Artículo 1:" + meuXML .. [1]. @ id);
/ / Lista de los id = "" Artículo 1
" procurar infos do artigo com id=2 " + meuXML .. artigo . ( @ id == " 2 " ) .* ) ; trace ( "Infos buscar el artículo con id = 2" + meuXML el artículo ... (@ id == "2") .*);
/ / Xml en la lista el nombre y el modelo del artículo 2, haciendo una demanda
" procurar nome do artigo com id=2 " + meuXML .. artigo . ( @ id == " 2 " ) . nome . text ()) ; trace ( "buscar el nombre del artículo con id = 2" + meuXML el artículo ... (@ id == "2"). nombre. texto ());
/ / Lista el nombre del artículo con id = "2";
" procurar modelo do artigo com id=2 " + meuXML .. artigo . ( @ id == " 2 " ) . modelo . text ()) ; trace ( "búsqueda de modelo del artículo con id = 2" + meuXML el artículo ... (@ id == "2"). plantilla. texto ());
/ / Lista el modelo del artículo con id = "2";
Muy simple ah?
Y listo, usted puede ver lo simple que es trabajar con XML ... voy a dar un ejemplo de la asignando meuXML un archivo XML externo:
privado var XML ; meuXML: XML;
privado var URLLoader ; cargador: URLLoader;
privado función : void carregaXML (): void (
new cargador = new ; URLLoader ();
addEventListener ( Event . COMPLETE , onComplete ) ; cargador. addEventListener (Event. COMPLETO, onComplete);
load ( new cargador. carga (nuevo " http://www.meusite.com/meu_ficheiro_xml.xml " )) ; URLRequest ( "http://www.meusite.com/meu_ficheiro_xml.xml"));
)
privado función evt : Event ) : void onComplete (evt: Event): void
(
new meuXML = new loader . data ) ; XML (Fecha loader.);
/ / Y listo, la plata aquí son los contenidos de la variable XML y puede utilizar la operación tal como se indica más arriba.
)
Para cargar el XML, sólo en su aplicación que utiliza flex desencadenar creationComplete = "carregaXML ()"
... ¿Cómo es que no hay excusa para no trabajar con XML utilizando E4X!
Espero que sea útil
Abrazar.













Un comentario
buen ejemplo, aunque deberías poner un BAJAR que pueden vincular el ejemplo y usted podría intentar, nada mejor que la práctica.
Salu2.