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 != "undefined" ){
var version = [
"MSXML2.DOMDocuemnt6.0",
"MSXML2.DOMDocument3.0",
"MSXML2.DOMDocument"
];
for( var i = 0;i < version.length;i++ ){ // 判断IE8以下的浏览器使用
try{
var xmlDom = new ActiveXObject( version[ i ] );
}catch( e ){
// 跳过
}
}
xmlDom.loadXML( xmlStr ); // IE下面 获取xml
if( xmlDom.parseError != 0 ){
throw new Error( "错误信息:" + xmlDom.parseError.reason );
}
return xmlDom;
}else{
throw new Error( "您的浏览器或者系统不支持XML DOM对象! " )
}
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;
}
var xmlStr = "<root><user>尜尜</user></root>";
var xmlDom = getXMLDOM( xmlStr );
var xml = serializerXML( xmlDom )
alert(xml)
// PS: 为了兼容所有的浏览器,所以就放弃了从外部加载XML文件,而使用了字符串XML加载和序列化
跨浏览器获取序列化的xml
最新推荐文章于 2022-10-26 17:41:08 发布