XML4跨浏览器兼容
//跨浏览器返回XMLDOM对象
function getXMLDOM(xmlStr){
var xmlDom=null;
if(typeof window.DOMParser !='undefined'){
xmlDom=(new DOMParser).parseFromString(xmlStr,'text/xml');
var errors=xmlDom.getElementsByTagName('parsererror');
if(errors.length>0){
throw new Error('错误信息:'+errors[0].textContent);
}
}else if(typeof window.ActiveXObject){
var version=[
'MSXML2.DOMDocument6.0',
'MSXML2.DOMDocument3.0',
'MSXML2.DOMDocument',
];
for(var i=0;i<version.length;i++){
try{
var xmlDom=new ActiveXObject(version[i]);
}catch(e){
//跳过
}
}
xmlDom.loadXML(xmlStr);
if(xmlDom.parseError!=0){
throw new Error('错误信息:'+xmlDom.parseError.reason);
};
return xmlDom;
}else{
throw new Error("您的系统或浏览器不支持XML DOM对象!");
};
return xmlDom;
}
//序列化XML
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;
}
var xmlStr='<root><user>Leee</user></root>';
var xmlDom=getXMLDOM(xmlStr);
// alert(xmlDom.xml); //只有IE支持此序列化
alert(serializerXML(xmlDom));
//PS: 为了跨域所有浏览器兼容,我们放弃了从外部加载XML文件,而使用字符串XML加载和序列化