Comunidad de diseño web y desarrollo en internet online

Leer XML con cadena de texto o variable

Citar            
MensajeEscrito el 22 Feb 2010 12:55 am
Buenas buenas!
Estoy desde hace rato tratando de dar con alguna función que me permita decodificar una cadena que me debería devolver un atributo.
Ejemplo
en la varible myXml, cargo mi archivo xml
y luego, para leer el atributo "nombre" del nodo 0 uso:

Código ActionScript :

myXml.firstChild.childNodes[0].attributes.nombre


ahora, del mismo modo intento leer el atributo "nombre" pero concatenando datos

Código ActionScript :

variableNodos=".childNodes[0].attributes.nombre"
myXml.firstChild+variableNodos


Pero no logro hacer que me reconozca la funcion. Intente hacelo con eval y no funciono.
Busque en el foro y solo vi un tema parecido, pero no esta la solucion al problema.
Gracias de ante mano!
Juano

Por juanofranco

25 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 22 Feb 2010 07:25 am
Así se haría:

xml = myXML.firsChild;
nodos = xml.childNodes[0];
value = nodos.attributes.nombre;

¿Eso es lo que quieres?

Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

firefox
Citar            
MensajeEscrito el 22 Feb 2010 05:25 pm
Gracias Hernan!
Lo pude resolver finalmente. Estaba concatenando mal. Tu ayuda me sirvió.
De paso aprovecho para dejar la clase. Lo que buscaba era, mediante una llamada a una funcion con una simple linea, obtener el resultado de la cantidad de nodos o de algun atributo en particular.
Aca dejo el xml de ejemplo

Código XML :

<?xml version="1.0" encoding="utf-8"?>
<Menu>
  <item0 nombre="nombre 0" imagen="imagen 0" />
  <item1 nombre="nombre 1" imagen="imagen 1" />
  <item2 nombre="nombre 2" imagen="imagen 2" />
  <Menu2>
    <item0 nombre="nombre 0" imagen="imagen 0"/>
    <item1 nombre="nombre 1" imagen="imagen 1"/>
    <item2 nombre="nombre 2" imagen="imagen 2"/>
  </Menu2>
</Menu>


Luego la clase

Código ActionScript :

MiXML = new XML();
MiXML.ignoreWhite = true;
MiXML.load("contenido.xml");
MiXML.onLoad = function(success) {
   if (success) {
      play();
   } else {
      trace("no cargo");
   }
};
function devolvemeItem(tipo:String, nodes:Array) {
   var xmlNew:String = MiXML.firstChild;
   resultado = MiXML.firstChild;
   for (var a:Number = 0; a<nodes.length; a++) {
      resultado = resultado.childNodes[nodes[a]];
   }
   if (tipo == "") {
      var resultadoFinal:String = resultado.childNodes.length;
   } else {
      var resultadoFinal:String = resultado.attributes[tipo];
   }
   return resultadoFinal;
}


Y por ultimo las distintas formas de llamar la funcion

Código ActionScript :

devolvemeItem(""); //cantidad de nodos que tiene firstChild
devolvemeItem("",[0]); //cantidad de nodos que hay el nodo []
devolvemeItem("nombre",[3, 1]); //valor que hay dentro del atributo "nombre" del nodo 3, subnodo 1


logicamente se puede modificar el atributo que se busca, como la profundidad de los nodos del xml
Saludos y gracias!!

Por juanofranco

25 de clabLevel



Genero:Masculino  

msie8

 

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