Home > Web Front-end > JS Tutorial > How to achieve cross-browser compatibility when parsing XML files in JavaScript?

How to achieve cross-browser compatibility when parsing XML files in JavaScript?

Susan Sarandon
Release: 2024-11-14 10:47:02
Original
897 people have browsed it

How to achieve cross-browser compatibility when parsing XML files in JavaScript?

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");
}
Copy after login

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>");
Copy after login

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);
Copy after login

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" &amp;&amp;
       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;
Copy after login

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!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template