前端之家收集整理的这篇文章主要介绍了
细节:解析XML文档和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",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",false);
XMLHttp.send();
//非异步代码写这里
// var XMLDom = XMLHttp.responseXML; //解析XML文档
var XMLDoc = XMLHttp.responseText; //解析XML字符串
var XMLDom = (new DOMParser()).parseFromString(XMLDoc,"text/xml");
//异步代码写这里
console.log(XMLDom);
}