Cross-Browser Javascript XML Parsing Cross-Browser Javascript XML Parsing xml xml

Cross-Browser Javascript XML Parsing


The following will work in all major browsers, including 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");}

Example usage:

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

Live demo:

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;