Comunidad de diseño web y desarrollo en internet online

Flash y XML

Citar            
MensajeEscrito el 14 Sep 2007 02:57 pm
hola buenos dias a toda la banda de este foro, recurro a su sabiduria este dia ya que me encuentro con un peque;o proyecto, en el cual requiero hacer lo siguiente, cuando el usuario ingrese su puesto en una empresa le aparesca su perfil de su cargo estuve leyendo el tutorial de xml en flash y eso lo comprendi perfectamente ahora solo requiero saber como puedo hacer para que cuando se ingrese dicha palabra este busque en el XML y cargue cierta parte del XML o tengo ke hacer un XML por cada puesto? bien espero poder haberme explicado si saben de algun tutorial pues se los agradeceria infinitamente....

Por Mike Morales

62 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 18 Sep 2007 12:34 pm
Puedes tener un solo XML para todos los puestos, pero si son muchos, y con mucha información, tienes que buscar la cantidad de información que puedes leer de un XML.
Y para accesar al archivo, solo tienes que recorrer todos los nodos que representan un puesto, y buscar el que corresponde al puesto capturado.

Para esto tienes que usar el siguiente codigo:

Código :

System.useCodepage = true;   //Permite caracteres tradicionales como letras con tilde la ñ, etc.
var Parametros_XML:XML; //Se declara la variable Parametros_XML de tipo XML (utilizada para almacenar el documento xml)
Parametros_XML = new XML();   //creando el objeto Parametros_XML de typo XML
Parametros_XML.ignoreWhite = true; //Permite que el objeto XML ignore los espacios en blanco entre marca y marca del documento XML
Parametros_XML.onLoad = function(swExito) {
   if (! swExito) {
      trace("No se cargo el archivo XML");
      return;
   }
   _global.imgPortadaPrincipal = Parametros_XML.firstChild.childNodes[1].firstChild.firstChild.firstChild.firstChild.attributes.n;
   trace("Se termino de leer parametros Portada(" +  _global.imgPortadaPrincipal + ") TotNodos(" + Parametros_XML.firstChild.childNodes[1].firstChild.childNodes[1].childNodes.length + ")");
   // cada opción del menu, el ultimo nodo son los creditos
   for (nNodo = 0; nNodo < Parametros_XML.firstChild.childNodes[1].firstChild.childNodes[1].childNodes.length ; nNodo++) {
      NodoMenu = Parametros_XML.firstChild.childNodes[1].firstChild.childNodes[1].childNodes[nNodo];
      if (NodoMenu.attributes.type == "menu") {
         img11 = NodoMenu.firstChild.firstChild.firstChild.attributes.n;
         img12 = NodoMenu.firstChild.childNodes[1].firstChild.attributes.n;
         img13 = NodoMenu.lastChild.firstChild.firstChild.attributes.n;
      } else {
         trace("*  Nodo no es opcion de menu (" + NodoMenu.attributes.type + ")");
      }
   }
}
//**************************************************************************
Parametros_XML.load("Parametros.xml");   //El método load() permite cargar el documento xml


Las palabras firstChild y childNodes[x] usalas para acceder a tus datos, dependiendo de la estructura

Postea la estructura de tu XML, para decirte como usar estos.

Por gabynufe

Claber

446 de clabLevel



 

México, D.F.

msie7
Citar            
MensajeEscrito el 25 Oct 2007 07:17 pm
gabynufe una pregunta como se que longitud tiene un xml, el for que tienes en la respuesta para Mike Morales no lo entiendo muy bien notese que soy primerizo ya tengo X cantidad de elementos en el XML pero no se como aplicarle el atributo length.. podrias ayudarme

Por juanc_98

34 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 26 Oct 2007 02:23 pm
Los archivos XML estan formados por nodos

Y cada nodo puede estar formado por nodos secundarios, es decir nodos hijos.

Si tu necesitas saber cuandos nodos secundarios contiene un nodo lo obtienes con la propiedad length del nodo:

ejemplo:

Código :

trace(Parametros_XML.firstChild.length);

este ejemplo te va a mostrar el número de nodos secundarios (o hijos) que tiene el primer nodo que se encuentre en el archivo XML.

Código :

trace(Parametros_XML.childNodes[5].lastChild.length);

este ejemplo te va a mostrar el número de nodos secundarios (o hijos) que tiene el último nodo hijo del sexto nodo (los indices de nodos comienzan desde cero) que se encuentre en el archivo XML.

Juanc_98, espero que esto resuelva tu duda.

Por gabynufe

Claber

446 de clabLevel



 

México, D.F.

msie7
Citar            
MensajeEscrito el 30 Oct 2007 06:29 pm
gabynufe de nueva cuenta molestandote resulta que prove lo que mencionas de los nodos pero resulta que no me da la longitud o eso creo que es el error..... tengo el siguiente XML :
<clientes>
<cliente cte='00003' pssw='12345' docto='W000001' saldo='100.23'/>
<cliente cte='02573' pssw='09876' docto='W000002' saldo='1578.23'/>
</clientes>

y el codigo es el sig.... copia del que habias puesto tu
codigo AS
var logueado:Boolean;
login_xml = new XML();
login_mx.ignoreWhite = true;
login_xml.load("clientes.xml");

login_mx.onLoad = function (exito:Boolean) {
if (exito) {
longitud = login_mx.firstChild.length;
i = 0;
logueado = false;
while(i<longitud) {
if (cte_txt.text==login_txt.firstChild.childNodes[i].attributes.cte && (pass_txt.text == login_txt.firstChild.childNodes[i].attributes.pssw)){
_root.mess_txt.htmlText = "logueado";
logueado=true;
break;
}
i++;
}
if (!logueado){
_root.mess_txt.htmlText = "No existes";
}
}else{
_root.mess_txt.htmlText = "Error cargando el XML";
}
}

btn_btn.onRelease = function() {
login_xml.load("clientes.xml");
}

pero no me funciona creo yo que puede ser por la longitud del XML (longitud = login_mx.firstChild.length;) que algo este poniendo mal.....me podrias ayudar por favor....... de antemano gracias

Por juanc_98

34 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 31 Oct 2007 01:47 pm
1) corrige todo lo que tienes como "login_mx" por "login_xml"
2) corrige todo lo que tienes como "login_txt" por "login_xml"
3) corrige la linea donde obtienes longitud por:

Código :

longitud = login_xml.firstChild.childNodes.length;

Por gabynufe

Claber

446 de clabLevel



 

México, D.F.

msie7
Citar            
MensajeEscrito el 31 Oct 2007 06:30 pm
ups si es cierto ya me di cuenta de ello gracias en cuanto a lo de la longitud lo voy a hacer y luego te aviso que tal me fue... muchisimas gracias

Por juanc_98

34 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 31 Oct 2007 11:35 pm
ya quedo gabynufe muchisimas gracias.......

Por juanc_98

34 de clabLevel



Genero:Masculino  

msie

 

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