考虑两种情况: 非IE环境, 和 IE环境(IE11)要单独考虑
非 IE环境
- DOMParser 可以将存储在字符串中的 XML 或 HTML 源代码解析为一个 DOM Document。
parser = new DOMParser();
doc = parser.parseFromString(stringContainingHTMLSource, "text/html")
// 返回一个 HTMLDocument 对象,同时也是一个 Document 对象。
let a = doc.getElementByTagName('xx')[0].firstChild.nodeValue; // 返回当前节点的值
console.log(a)
IE环境
- Internet Explorer 使用 loadXML() 方法来解析 XML 字符串,而其他浏览器使用 DOMParser 对象。
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=false;
xmlDoc.loadXML(text);
// 此时的xml为一个xmldocument对象
- IE11中 window.ActiveXObject 是存在的, window.DOMParser为undefined
兼容性写法
unction loadXML(xmlString) {
var xmlDoc = null;
// ie浏览器, ie11
if (!window.DOMParser && window.ActiveXObject || window.ActiveXObject) {
//window.DOMParser �ж��Ƿ��Ƿ�ie�����
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) {}
}
}
//֧非IE浏览器,Mozilla 火狐
else if (
window.DOMParser &&
document.implementation &&
document.implementation.createDocument
) {
try {
let parser;
parser = new DOMParser();
xmlDoc = parser.parseFromString(xmlString, "text/xml");
} catch (e) {}
} else {
return null;
}
return xmlDoc;
}