tutorial style instalar gratis como chrome attribute activar javascript xml cross-browser cross-platform

javascript - style - title css



NavegaciĆ³n XML de JavaScript del navegador cruzado (3)

Considere usar jQuery.parseXML .

Tenga en cuenta que el código de JQuery anterior (pre 2.x) es esencialmente idéntico al propuesto en la respuesta aceptada y se puede encontrar en http://code.jquery.com/jquery-1.9.1.js , versión parcial a continuación:

// Cross-browser xml parsing parseXML: function( data ) { ... try { if ( window.DOMParser ) { // Standard tmp = new DOMParser(); xml = tmp.parseFromString( data , "text/xml" ); } else { // IE xml = new ActiveXObject( "Microsoft.XMLDOM" ); xml.async = "false"; xml.loadXML( data ); } } catch( e ) { xml = undefined; } ... }

Al iniciar el código JQuery 2.x cambiado para omitir la rama ActiveX, si aún lo necesita, use una versión anterior de JQuery o un análisis ActiveX en línea. Código parcial de http://code.jquery.com/jquery-2.0.0.js :

// Cross-browser xml parsing parseXML: function( data ) { var xml, tmp; ..... // Support: IE9 try { tmp = new DOMParser(); xml = tmp.parseFromString( data , "text/xml" ); } catch ( e ) { xml = undefined; } ..... },

¿Hay alguna forma de cross-browser / multiplataforma para analizar archivos XML en Javascript?


Lo siguiente funcionará en todos los principales navegadores, incluido IE 6:

var parseXml; if (typeof window.DOMParser != "undefined") { parseXml = function(xmlStr) { return ( new window.DOMParser() ).parseFromString(xmlStr, "text/xml"); }; } else if (typeof window.ActiveXObject != "undefined" && new window.ActiveXObject("Microsoft.XMLDOM")) { parseXml = function(xmlStr) { var xmlDoc = new window.ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async = "false"; xmlDoc.loadXML(xmlStr); return xmlDoc; }; } else { throw new Error("No XML parser found"); }

Ejemplo de uso:

var xml = parseXml("<foo>Stuff</foo>"); alert(xml.documentElement.nodeName);

Demo en vivo:

var parseXml; if (typeof window.DOMParser != "undefined") { parseXml = function(xmlStr) { return ( new window.DOMParser() ).parseFromString(xmlStr, "text/xml"); }; } else if (typeof window.ActiveXObject != "undefined" && new window.ActiveXObject("Microsoft.XMLDOM")) { parseXml = function(xmlStr) { var xmlDoc = new window.ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async = "false"; xmlDoc.loadXML(xmlStr); return xmlDoc; }; } else { throw new Error("No XML parser found"); } var xml = parseXml("<foo>Stuff</foo>"); document.body.innerHTML = "Root element: " + xml.documentElement.nodeName;


Si necesita analizar documentos XML de gran tamaño que quizás no pueda guardar por completo en la memoria, considere usar un analizador de estilo SAX como este: https://github.com/isaacs/sax-js/