原生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动态加载外部的file作为component中的template数据源的实现方法

    Knockoutjs 的Components 是一种自定义的组件,它以一种强大、简介的方式将你自己的ui代码组织成一种单独的、可重用的模块。接下来通过本文给大家介绍knockoutjs动态加载外部的file作为component中的template数据源的实现方法,一起看看吧
    2016-09-09
  • uniapp中微信小程序与H5相互跳转以及传参详解(webview)

    uniapp中微信小程序与H5相互跳转以及传参详解(webview)

    在单位做项目的时候碰到一个需求,需要从微信小程序跳转到H5页面,下面这篇文章主要给大家介绍了关于uniapp中微信小程序与H5相互跳转以及传参的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-08-08
  • 详解微信小程序开发之下拉刷新 上拉加载

    详解微信小程序开发之下拉刷新 上拉加载

    本篇文章主要介绍了微信小程序开发之下拉刷新 上拉加载,具有一定的参考价值,有兴趣的可以了解一下。
    2016-11-11
  • 小程序中英文混合排序问题解决

    小程序中英文混合排序问题解决

    这篇文章主要介绍了小程序中英文混合排序问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • alert中断settimeout计时功能

    alert中断settimeout计时功能

    在测试过程中发现alert会中断settimeout的计时功能,关闭对话框后,settimeout的时间会重头开始计时,而不是从中断处,感兴趣的朋友可以了解下
    2013-07-07
  • 本人自用的global.js库源码分享

    本人自用的global.js库源码分享

    这篇文章主要介绍了本人自用的global.js库源码分享,源码中包含常用WEB操作,如命名空间、DOM操作、数据判断、Cookie操作等功能,需要的朋友可以参考下
    2015-02-02
  • 不会死机的js 格式代码

    不会死机的js 格式代码

    别人写的 js 格式代码,说是不会死机,可以格式超长代码.
    2008-05-05
  • JS生成唯一id的多种解决方案(非常实用)

    JS生成唯一id的多种解决方案(非常实用)

    在项目开发中我们常需要给某些数据定义一个唯一标识符,便于寻找关联,这篇文章主要给大家介绍了关于JS生成id的多种解决方案,文中介绍的方法都非常实用,需要的朋友可以参考下
    2023-10-10
  • 基于JavaScript实现跳转提示页面

    基于JavaScript实现跳转提示页面

    这篇文章主要介绍了基于JavaScript实现跳转提示页面 的相关资料,需要的朋友可以参考下
    2016-09-09
  • Google Maps API地图应用示例分享

    Google Maps API地图应用示例分享

    这篇文章主要分享一段了Google Maps API地图应用示例,做项目中经常会使用到,非常的简单,有需要的朋友可以参考下
    2014-10-10

最新评论

?


http://www.vxiaotou.com