Comunidad de diseño web y desarrollo en internet online

como leer los nodos de un xml por el nombre

Citar            
MensajeEscrito el 21 Ene 2009 11:42 pm
Hola tengo un problema. Voy hacer un archivo para presentar propuestas gráficas desde flash pero la gente que lo va a actualizar no es muy organizada lo cual me causa conflicto para poder cargar los archivos en su respectivo lugar, ya que si no lo ponen en el mismo orden entonces los archivos cargaran en el lugar incorrecto.

Entonces lo que quiero hacer, es leer los nodos del xml en flash por medio de su nombre, pero no se como se hace esto, alguna idea de como se hace esto???

mi XML:

Código :


<info>
   <leader src="creativos/728x90.swf"></leader>
   <arroba src="creativos/250x250.swf"></arroba>
   <half src="creativos/234x60.gif"></half>
</info>



en flash asi leo mi xml

Código :

stop();
// xml object for xml content (defines sources for selections)
var banners_xml = new XML();
banners_xml.ignoreWhite = true;
banners_xml.onLoad = function(success) {
   if (success) {
      Generateformats(this);
   } else {
      trace("Error loading XML file");
   }
};
// load
banners_xml.load("xml/info.xml");

function Generateformats(banners_xml) {
   var leader = banners_xml.firstChild.childNodes[0];  //[color=FF0000]<--- Obvio aqui pongo la forma tradicional pero quiero leer  el nodo llamado leader y asi asignarle las rutas[/color]
   
   trace(leader);
}


espero alguien me pueda ayudar, saludos...

Por arthure2

6 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 Ene 2009 12:42 am
mm no se si te entendi bien, pero para leer el nombre del nodo seria algo como

Código :

   var c1 = banners_xml.firstChild.childNodes[0].nodeName;
   var c2 = banners_xml.firstChild.childNodes[1].nodeName;
   var c3 = banners_xml.firstChild.childNodes[2].nodeName;
   trace(c1);
   trace(c2);
   trace(c3);

Por rolv

Claber

2000 de clabLevel

3 tutoriales

 

firefox
Citar            
MensajeEscrito el 22 Ene 2009 01:35 am
si me explique mal, creo, lo que quiero es leer e nombre del nodo

Código :

<info>
   <leader src="creativos/728x90.swf"></leader>
   <arroba src="creativos/250x250.swf"></arroba>
   <half src="creativos/234x60.gif"></half>
</info>


en este caso si ves el xml quiero leer el nodo llamado leader, el nodo llamado arroba y el nodo llamado half si cambia su orden yo seguiria leyendo esos nodos porque los estaria mandando llamar por el nombre no por su numero, no se si me explique, creo q si es un poco confuso, :oops: espero haya una respuesta

Por arthure2

6 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 Ene 2009 02:10 am
podiras usar un for y algunos if o switch

Código ActionScript :

for (var aNode:XMLNode = rootNode.firstChild; aNode != null; aNode = aNode.nextSibling) {
    switch( aNode.nodeName )
    {
    case "leader":
        trace("Acciones para el nodo leader");
    break;
    case "arroba":
        trace("Acciones para el nodo arroba");
    break;
    default:
        trace("Acciones para el nodo " + aNode.nodeName);
    }
}

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 22 Ene 2009 02:23 am
reescribo tu funcion, quedaria asi:

Código ActionScript :

function Generateformats(banners_xml) {
 for (var aNode:XMLNode = banners_xml.firstChild; aNode != null; aNode = aNode.nextSibling) 
 { 
    switch( aNode.nodeName ) 
    { 
    case "leader": 
        leader = aNode.firstChild.nodeValue;
        leader_src = aNode.attributes["src"];
    break; 
    case "arroba": 
        arroba = aNode.firstChild.nodeValue;
        arroba_src = aNode.attributes["src"];
   break; 
    default: 
        trace("Acciones para el nodo " + aNode.nodeName); 
    } 
 } 
}


No recuerdo bien una parte, pero si "aNode.firstChild.nodeValue" no funciona, prueba "aNode.nodeValue".

Recomendaciones:
Puedo ver que

Código :

<leader src="creativos/728x90.swf"></leader>
no tiene un valor entre tags, supongo que el valor que necesitas es el de su atributo "src", pero no te recomiendo de esa forma(amenos que no tengas de otra), te recomiendo usar estrucutras CDATA, quedando de esta forma

Código :

<leader><![CDATA[creativos/728x90.swf]]></leader>
eso se ve mejor :P bueno pero al final de cuentas eres tu quien sabe tus necesidades. Suerte.

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox

 

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