首页 > 编程 > JavaScript > 正文

原生javascript实现解析XML文档与字符串

2019-11-20 10:28:58
字体:
来源:转载
供稿:网友

之前写过一篇 《使用jquery解析XML的方法》链接是//www.VeVB.COm/article/54842.htm,上篇文章详细解释了jQuery 与字符串互相转换的方法 ,这里着重论述javascript操作xml。

总代码如下:

var XMLHttp = null;if (window.XMLHttpRequest) { //现代浏览器  XMLHttp = new XMLHttpRequest();} else if (window.ActiveXObject) {  XMLHttp = new ActiveXObject("Microsoft.XMLHTTP"); //IE5/IE6}if (XMLHttp !== null) {  XMLHttp.onreadystatechange = function() {    if (XMLHttp.readyState === 4) {      if (XMLHttp.status === 200 || XMLHttp.status === 304) {        // var XMLDom = XMLHttp.responseXML; //解析XML文档        var XMLDoc = XMLHttp.responseText; //解析XML字符串        var XMLDom = (new DOMParser()).parseFromString(XMLDoc, "text/xml");        //异步代码写这里        console.log(XMLDom);        console.log("world"); //后出现world      }    }  };  XMLHttp.open("get", "test1.xml", true);  XMLHttp.send();  //非异步代码写这里  console.log("hello"); //先出现hello}

第一步,创建XMLHTTPREQUEST:

var XMLHttp = null;if (window.XMLHttpRequest) { //现代浏览器  XMLHttp = new XMLHttpRequest();} else if (window.ActiveXObject) {  XMLHttp = new ActiveXObject("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) {        // var XMLDom = XMLHttp.responseXML; //解析XML文档        var XMLDoc = XMLHttp.responseText; //解析XML字符串        var XMLDom = (new DOMParser()).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();  //非异步代码写这里  // var XMLDom = XMLHttp.responseXML; //解析XML文档  var XMLDoc = XMLHttp.responseText; //解析XML字符串  var XMLDom = (new DOMParser()).parseFromString(XMLDoc, "text/xml");  //异步代码写这里  console.log(XMLDom);}

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表