이전에 "jquery를 사용하여 XML을 구문 분석하는 방법"이라는 기사를 작성했습니다. 링크는 http://www.jb51.net/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 }
두 번째 단계는 ONREADYSTATETECHANGE를 감지하는 것입니다(비동기식에는 필요하지 않음).
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); }