Comunidad de diseño web y desarrollo en internet online

Duda con Javascript y documento XML

Citar            
MensajeEscrito el 21 Sep 2012 11:25 pm
Saludos, estoy trayendo datos de un XML que está alojado en un servidor, para despues mostrar esto en un documento HTML, para ello hago lo siguiente:

Código :

var a1 = xml.getElementsByTagName('a1')[0].childNodes[0];
var A1 = document.getElementById("A1");
A1.innerHTML = a1.nodeValue;


donde a1 es el id del XML alojado en el servidor, resulta que esto lo tengo que hacer muchas veces, donde lo único que cambia es el id del campo, es decir, lo tengo así:

Código :

var a1 = xml.getElementsByTagName('a1')[0].childNodes[0];
var a2 = xml.getElementsByTagName('a2')[0].childNodes[0];
var a3 = xml.getElementsByTagName('a3')[0].childNodes[0];
var a4 = xml.getElementsByTagName('a4')[0].childNodes[0];
var a5 = xml.getElementsByTagName('a5')[0].childNodes[0];

var A1 = document.getElementById("A1");
var A2 = document.getElementById("A2");
var A3 = document.getElementById("A3");
var A4 = document.getElementById("A4");
var A5 = document.getElementById("A5");

A1.innerHTML = a1.nodeValue;
A2.innerHTML = a2.nodeValue;
A3.innerHTML = a3.nodeValue;
A4.innerHTML = a4.nodeValue;
A5.innerHTML = a5.nodeValue;


Todo funciona correctamente y trae los datos como se espera, pero mi duda es la siguiente, no hay forma de optimizar ese código para que no sea necesario usar tantas lineas, es decir, usar algo como

Código :

for (i=1;i<=5;i++)
{
var a[i] = xml.getElementsByTagName('a[i]')[0].childNodes[0];
}


No sé, es algo que se me ocurre, soy nuevo en esto y se me ha generado esa duda, agradezco cualquier info, saludos!

Por elektronische

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 Sep 2012 05:34 pm
Con jquery puedes leer un xml de manera mas sencilla, te dejo un ejemplo de una funcion con jquery que ultice para leer un xml alguna vez:

Código Javascript :

function leer_xml(){

  $xml = "tu_archivo.xml;

    //Read nodes
  $.get($xml, function (xml) {
    $(xml).find("proyecto").each(function () {
       $this = $(this);
       nombre = $this.find('nombre').text();
       logo = $this.find('logo').text();
       id = $this.find('id').text();
       texto = $this.find('texto').text();
       anio = $this.find('anio').text();
       nombre_corto = $this.find('nombre_corto').text();
       categoria = $this.find('categoria').text();

       
    });


    });
 }



Respecto a lo de optimizar el código, lo que puedes hacer es declarar un array, y con con un for vas guardando los valores en dicho array.

saludos.

Por HtrMancera

Claber

342 de clabLevel

1 tutorial

Genero:Masculino  

Front-end Developer

chrome

 

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