Mostrando entradas con la etiqueta compatible. Mostrar todas las entradas
Mostrando entradas con la etiqueta compatible. Mostrar todas las entradas

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