JavaScript 中的跨浏览器 XML 解析
在 Web 开发中,经常需要用 JavaScript 解析 XML 文件,无论浏览器或平台正在使用中。然而,实现跨浏览器兼容性可能很棘手。
解决方案:
下面提供的代码提供了一个适用于所有主要浏览器(包括 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"); }
示例用法:
要使用该解决方案,只需使用要解析的 XML 字符串调用 parseXml 函数,如下所示:
var xml = parseXml("<foo>Stuff</foo>");
生成的 xml 对象可用于以编程方式访问 XML 文档。例如,以下代码片段检索根元素的名称:
alert(xml.documentElement.nodeName);
现场演示:
为了演示此解决方案的功能,现场演示下面提供:
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;
此代码片段解析 XML 字符串并显示文档中根元素的名称身体。
以上是JavaScript解析XML文件时如何实现跨浏览器兼容?的详细内容。更多信息请关注PHP中文网其他相关文章!