jueves, 13 de septiembre de 2012

Carga de Archivos XML con Javascript compatible con todos los navegadores



Hola, una vez mas quiero aportarles un tema sencillo y básico pero que alguna vez nos ha causado molestias desarrollando aplicaciones web con javascript en los diferentes navegadores existentes, el cual consiste en la lectura de archivos xml desde javascript y recorrer los diferentes elementos utilizando DOM. 

Investigando encontré una cantidad de funciones y formas para cargar un archivo xml supuestamente compatibles con al menos tres de los navegadores mas utilizados (Internet Explorer 9, Google Chrome y Firefox) pero ninguno cumplia a cabalidad lo que deseaba, es por eso que  busqué y probé varios hasta que me encontré con la página http://www.w3schools.com de donde obtuve la siguiente función:

function loadXMLDoc(xml)
            {
                if (window.XMLHttpRequest)
                  {
                      xhttp=new XMLHttpRequest();
                  }
                else
                  {
                      xhttp=new ActiveXObject("Microsoft.XMLHTTP");
                  }
                xhttp.open("GET",xml,false);
                xhttp.send();
                return xhttp.responseXML;
            }


Con ésta función es posible cargar archivos xml con javascript, siendo éste compatible con los navegadores mencionados anteriormente (al menos con esos los probé y funcionó exitosamente) así que para utilizarlo solamente es necesario invocarlo y enviarle como parámetro el nombre o ruta del archivo xml, como se muestra a continuación:

var xmlDoc;
var nodos=null;
xmlDoc=loadXMLDoc("info.xml");
nodos = xmlDoc.documentElement.childNodes;

Con lo anterior obtenemos todos los elementos existentes dentro de un archivo xml, y se almacena en la variable 'nodos' que se podrá recorrer utilizando todas las funciones existentes de DOM. Eso era todo. Saludos!

Bibliografia:
http://www.w3schools.com/dom/dom_loadxmldoc.asp
http://www.w3schools.com/dom/dom_nodes_access.asp
http://www.w3schools.com/dom/tryit.asp?filename=try_dom_list_loop


No hay comentarios: