原生javascript实现解析XML文档与字符串
之前写过一篇《使用jquery解析XML的方法》链接是https://www.nhooo.com/article/54842.htm,上篇文章详细解释了jQuery与字符串互相转换的方法,这里着重论述javascript操作xml。
总代码如下:
varXMLHttp=null; if(window.XMLHttpRequest){//现代浏览器 XMLHttp=newXMLHttpRequest(); }elseif(window.ActiveXObject){ XMLHttp=newActiveXObject("Microsoft.XMLHTTP");//IE5/IE6 } if(XMLHttp!==null){ XMLHttp.onreadystatechange=function(){ if(XMLHttp.readyState===4){ if(XMLHttp.status===200||XMLHttp.status===304){ //varXMLDom=XMLHttp.responseXML;//解析XML文档 varXMLDoc=XMLHttp.responseText;//解析XML字符串 varXMLDom=(newDOMParser()).parseFromString(XMLDoc,"text/xml"); //异步代码写这里 console.log(XMLDom); console.log("world");//后出现world } } }; XMLHttp.open("get","test1.xml",true); XMLHttp.send(); //非异步代码写这里 console.log("hello");//先出现hello }
第一步,创建XMLHTTPREQUEST:
varXMLHttp=null; if(window.XMLHttpRequest){//现代浏览器 XMLHttp=newXMLHttpRequest(); }elseif(window.ActiveXObject){ XMLHttp=newActiveXObject("Microsoft.XMLHTTP");//IE5/IE6 }
第二步,检测ONREADYSTATECHANGE(非异步不需要):
if(XMLHttp!==null){ XMLHttp.onreadystatechange=function(){ if(XMLHttp.readyState===4){ if(XMLHttp.status===200||XMLHttp.status===304){ //异步代码写这里 } } }; XMLHttp.open("get","test1.xml",true); XMLHttp.send(); //非异步代码写这里 }
第三步,解析XML文档或字符串(异步):
XMLHttp.onreadystatechange=function(){ if(XMLHttp.readyState===4){ if(XMLHttp.status===200||XMLHttp.status===304){ //varXMLDom=XMLHttp.responseXML;//解析XML文档 varXMLDoc=XMLHttp.responseText;//解析XML字符串 varXMLDom=(newDOMParser()).parseFromString(XMLDoc,"text/xml"); //异步代码写这里 console.log(XMLDom); } } };
第四步,解析XML文档或字符串(非异步):
if(XMLHttp!==null){ //XMLHttp.onreadystatechange=function(){ //if(XMLHttp.readyState===4){ //if(XMLHttp.status===200||XMLHttp.status===304){} //} //}; XMLHttp.open("get","test1.xml",false); XMLHttp.send(); //非异步代码写这里 //varXMLDom=XMLHttp.responseXML;//解析XML文档 varXMLDoc=XMLHttp.responseText;//解析XML字符串 varXMLDom=(newDOMParser()).parseFromString(XMLDoc,"text/xml"); //异步代码写这里 console.log(XMLDom); }