Cross-Browser XML Parsing in JavaScript
In web development, it's often necessary to parse XML files in JavaScript, regardless of the browser or platform in use. However, achieving cross-browser compatibility can be tricky.
Solution:
The code provided below provides a solution that works across 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:
To use the solution, simply invoke the parseXml function with the XML string to parse, as shown below:
var xml = parseXml("<foo>Stuff</foo>");
The resulting xml object can then be used to programmatically access the XML document. For instance, the following code snippet retrieves the name of the root element:
alert(xml.documentElement.nodeName);
Live Demo:
To demonstrate the functionality of this solution, a live demo is provided below:
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;
This code snippet parses the XML string and displays the name of the root element in the document body.
The above is the detailed content of How to achieve cross-browser compatibility when parsing XML files in JavaScript?. For more information, please follow other related articles on the PHP Chinese website!