本文提供了一段兼容旧版 IE 与现代浏览器的 JavaScript 代码,用于加载并解析 XML 文件。通过检测 window.ActiveXObject 和 document.implementation.createDocument 来适配不同环境,实现了 XML 文件的异步加载、属性提取及节点遍历功能,适用于需要处理本地或远程 XML 数据的场景。
// 复制代码
JavaScript 读取与解析 XML 文件的兼容实现
相关实现代码如下所示:
// 加载 XML 文件的逻辑
function loadXML(xmlFile) {
var xmlDoc;
if (window.ActiveXObject) {
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = false;
xmlDoc.load(xmlFile);
}
} else if (document.implementation && document.implementation.createDocument) {
xmlDoc = document.implementation.createDocument("", "", null);
xmlDoc.async = false;
xmlDoc.load(xmlFile);
} else {
alert('您的浏览器不支持该系统脚本!');
}
return xmlDoc;
}
// 输出 XML 文件内容的逻辑
function outXML(filename){
var xmlDoc = loadXML(filename);
var x = xmlDoc.getElementsByTagName("properties");
var text=x[0].outerHTML.replace(/</g,"<");
return text;
}
function dirXML(xmlDoc){
var entry=xmlDoc.getElementsByTagName("properties")[0].getElementsByTagName("entry");
for (var i=0,j=entry.length; i<j;i++){
console.log(entry[i].getAttribute("key"));
console.log(entry[i].childNodes[0].nodeValue);
}
}