原生javascript實現解析XML文檔與字串,javascriptxml
之前寫過一篇 《使用jquery解析XML的方法》連結是http://www.bkjia.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);}
您可能感興趣的文章:
- javascript解析xml字串的函數
- JS解析XML的實現代碼
- js 載入並解析XML字串的代碼
- Javascript(AJAX)解析XML的代碼(相容FIREFOX/IE)
- JS解析XML檔案和XML字串詳解