原生javascript實(shí)現(xiàn)解析XML文檔與字符串
之前寫(xiě)過(guò)一篇 《使用jquery解析XML的方法》鏈接是http://www.dbjr.com.cn/article/54842.htm,上篇文章詳細(xì)解釋了jQuery 與字符串互相轉(zhuǎn)換的方法 ,這里著重論述javascript操作xml。
總代碼如下:
var XMLHttp = null; if (window.XMLHttpRequest) { //現(xiàn)代瀏覽器 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"); //異步代碼寫(xiě)這里 console.log(XMLDom); console.log("world"); //后出現(xiàn)world } } }; XMLHttp.open("get", "test1.xml", true); XMLHttp.send(); //非異步代碼寫(xiě)這里 console.log("hello"); //先出現(xiàn)hello }
第一步,創(chuàng)建XMLHTTPREQUEST:
var XMLHttp = null; if (window.XMLHttpRequest) { //現(xiàn)代瀏覽器 XMLHttp = new XMLHttpRequest(); } else if (window.ActiveXObject) { XMLHttp = new ActiveXObject("Microsoft.XMLHTTP"); //IE5/IE6 }
第二步,檢測(cè)ONREADYSTATECHANGE(非異步不需要):
if (XMLHttp !== null) { XMLHttp.onreadystatechange = function() { if (XMLHttp.readyState === 4) { if (XMLHttp.status === 200 || XMLHttp.status === 304) { //異步代碼寫(xiě)這里 } } }; XMLHttp.open("get", "test1.xml", true); XMLHttp.send(); //非異步代碼寫(xiě)這里 }
第三步,解析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"); //異步代碼寫(xiě)這里 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(); //非異步代碼寫(xiě)這里 // var XMLDom = XMLHttp.responseXML; //解析XML文檔 var XMLDoc = XMLHttp.responseText; //解析XML字符串 var XMLDom = (new DOMParser()).parseFromString(XMLDoc, "text/xml"); //異步代碼寫(xiě)這里 console.log(XMLDom); }
- JS解析XML的實(shí)現(xiàn)代碼
- JS解析XML文件和XML字符串詳解
- xml 封裝與解析(javascript和C#中)
- JS實(shí)現(xiàn)兼容各瀏覽器解析XML文檔數(shù)據(jù)的方法
- JS解析XML實(shí)例分析
- js使用遞歸解析xml
- javascript解析xml實(shí)現(xiàn)省市縣三級(jí)聯(lián)動(dòng)的方法
- JS操作XML實(shí)例總結(jié)(加載與解析XML文件、字符串)
- jQuery解析XML與傳統(tǒng)JavaScript方法的差別實(shí)例分析
- jQuery解析XML文件同時(shí)動(dòng)態(tài)增加js文件的方法
- JS實(shí)現(xiàn)的跨瀏覽器解析XML文件實(shí)例
相關(guān)文章
js模擬如何實(shí)現(xiàn)重載以及默認(rèn)參數(shù)
這篇文章主要介紹了js模擬如何實(shí)現(xiàn)重載以及默認(rèn)參數(shù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05JS如何將秒數(shù)轉(zhuǎn)化為時(shí)分秒的形式
在實(shí)際工作中經(jīng)常會(huì)遇見(jiàn)把秒數(shù)轉(zhuǎn)化為時(shí)分秒的問(wèn)題,如何處理呢?下面這篇文章主要給大家介紹了關(guān)于JS如何將秒數(shù)轉(zhuǎn)化為時(shí)分秒形式的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-12-12javascript比較兩個(gè)日期相差天數(shù)的方法
這篇文章主要介紹了javascript比較兩個(gè)日期相差天數(shù)的方法,涉及javascript針對(duì)日期的轉(zhuǎn)換與比較的相關(guān)操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07使用TextRange獲取輸入框中光標(biāo)的位置的代碼
使用TextRange獲取輸入框中光標(biāo)的位置的代碼...2007-03-03微信小程序?qū)崿F(xiàn)動(dòng)態(tài)設(shè)置placeholder提示文字及按鈕選中/取消狀態(tài)的方法
這篇文章主要介紹了微信小程序?qū)崿F(xiàn)動(dòng)態(tài)設(shè)置placeholder提示文字及按鈕選中/取消狀態(tài)的方法,涉及事件綁定及this.setData動(dòng)態(tài)設(shè)置屬性數(shù)據(jù)的相關(guān)操作技巧,需要的朋友可以參考下2017-12-12微信小程序中實(shí)現(xiàn)手指縮放圖片的示例代碼
本篇文章主要介紹了微信小程序中實(shí)現(xiàn)手指縮放圖片的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-03-03