/**
* 1.跨浏览器处理xml
* 2.load方法只有IE,firefox,opera支持,所有无法跨浏览器
* 3.xmldom对象顺序问题,先进行先进的dom2,再去判断其他的IE
* 4.不同浏览器不同的序列化操作
* 5.不同报错,进行不同的报错机制
*/
/**
* 1.跨浏览器获取xmldom
*/
function getXMLDOM(xmlStr) {
var xmlDom = null;
if (typeof window.DOMParser != 'undefined') {
xmlDom = (new DOMParser()).parseFromString(xmlStr, 'text/xml');
var errors = xmlDom.getElementsByTagName('parsererror');
console.log(errors);
if (errors.length > 0) {
throw new Error('XML解析错误:' +
errors[0].firstChild.nodeValue);
}
} else if (typeof window.ActiveXObject != 'undefinded') {
var version = [
'MSXML2.DOMDocument6.0',
'MSXML2.DOMDocument3.0',
'MSXML2.DOMDocument'
];
for (var i = 0, len = version.length; i < len; i++) {
try {
var xmlDom = new ActiveXObject(version[i]);
} catch (e) {}
}
xmlDom.loadXML(xmlStr);
if (xmlDom.parseError != 0) {
throw new Error('XML解析错误:' + xmlDom.parseError.reason);
}
} else {
throw new Error('您的系统或浏览器不支持xmldom!');
}
return xmlDom;
}
function serializerXML(xmlDom) {
var xml = '';
if (typeof window.XMLSerializer != 'undefined') {
xml = (new XMLSerializer()).serializeToString(xmlDom);
} else if (typeof xmlDom.xml != 'undefined') {
xml = xmlDom.xml;
}
return xml;
}
getXMLDOM('<root><user>邓志强getXMLDOM</user></root>');