原生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);
}