本文介绍如何在JavaScript中跨浏览器将XML字符串转换为XML对象。针对IE旧版本,通过尝试创建不同的ActiveXObject实现兼容;对于支持标准DOMParser的现代浏览器,则使用parseFromString方法。代码包含完整的错误处理与回退机制,确保在不同环境下均能正确解析XML数据。
跨浏览器XML解析的核心逻辑
在处理Web开发时,必须特别注意Internet Explorer(IE)不同版本之间的兼容性问题。
// 复制代码
代码实现与兼容性处理
具体实现代码如下:
function loadXML(xmlString) {
var xmlDoc = null;
if (!window.DOMParser && window.ActiveXObject) {
var xmlDomVersions = ['MSXML.2.DOMDocument.6.0', 'MSXML.2.DOMDocument.3.0', 'Microsoft.XMLDOM'];
for (var i = 0; i < xmlDomVersions.length; i++) {
try {
xmlDoc = new ActiveXObject(xmlDomVersions[i]);
xmlDoc.async = false;
xmlDoc.loadXML(xmlString);
break;
} catch (e) {
}
}
}
} else if (window.DOMParser && document.implementation && document.implementation.createDocument) {
try {
domParser = new DOMParser();
xmlDoc = domParser.parseFromString(xmlString, 'text/xml');
} catch (e) {
}
}
} else {
return null;
}
return xmlDoc;
}