原生javascript实现解析XML文档与字符串
更新时间:2016年03月01日 08:56:49 投稿:hebedich
这篇文章主要介绍了javascript解析XML文档和XML字符串的方法和具体的代码解析,有需要的小伙伴可以参考下。
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud)
(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun)
之前写过一篇 《使用jquery解析XML的方法》链接是/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); }
相关文章
knockoutjs动态加载外部的file作为component中的template数据源的实现方法
Knockoutjs 的Components 是一种自定义的组件,它以一种强大、简介的方式将你自己的ui代码组织成一种单独的、可重用的模块。接下来通过本文给大家介绍knockoutjs动态加载外部的file作为component中的template数据源的实现方法,一起看看吧2016-09-09uniapp中微信小程序与H5相互跳转以及传参详解(webview)
在单位做项目的时候碰到一个需求,需要从微信小程序跳转到H5页面,下面这篇文章主要给大家介绍了关于uniapp中微信小程序与H5相互跳转以及传参的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下2022-08-08
最新评论