zoukankan      html  css  js  c++  java
  • js便签笔记(8)——js加载XML字符串或文件

    1. 加载XML文件

    方法1:ajax方式。代码如下:

    var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
    xhr.open("GET", "data.xml", false);
    xhr.send(null);
    var xmlDoc = xhr.responseXML;
    console.log(xmlDoc); 

    (关于XMLHttpRequest对象的用法,请参加 http://www.w3school.com.cn/xmldom/dom_http.asp

    注意,代码第二行的“false”,表示不用异步。如果这里改为“true”,那么xmlDoc将得到null。因为js的异步操作,不会等待文件加载完,就直接执行下面的语句了。所以,我们这里必须设置为“false”,表示必须等待文件加载完,再执行以下操作,这样才能得到正确的xmlDoc。

    这种方式兼容所有高级浏览器,建议采用这种方式加载。

    方法2:IE的方式。代码如下:

    var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
    xmlDoc.async = "false";
    xmlDoc.load("note.xml");
    console.log(xmlDoc); 

    通过IE特有的ActiveXObject("Microsoft.XMLDOM")对象的load()方法加载文件。

    注意,这里还是设置了异步是false,原因和方法1的一样。

    方法3:Firefox的方式,代码如下:

    var xmlDoc = document.implementation.createDocument("", "", null);
    xmlDoc.async = "false";
    xmlDoc.load("note.xml");
    console.log(xmlDoc);

    关于跨域加载:安全起见,现代浏览器不能跨域访问,即只能加载本机上的xml文件。

    2. 加载XML字符串

    先看代码:

     1       function LoadXmlText() {
     2 
     3             //拼接XML字符串
     4             var txt = '';
     5             txt = txt + "<note>";
     6             txt = txt + "<to>George</to>";
     7             txt = txt + "<from>John</from>";
     8             txt = txt + "<heading>Reminder</heading>";
     9             txt = txt + "<body>Don't forget the meeting!</body>";
    10             txt = txt + "</note>";
    11 
    12             
    13             if (window.DOMParser) {
    14                 //非IE浏览器
    15                 xmlDoc = (new DOMParser()).parseFromString(txt, "text/xml");
    16             } else {
    17                 //IE浏览器
    18                 xmlDoc = new ActiveXObject("Microsoft.XMLDOM");         
    19                 // 或者:xmlDoc = new ActiveXObject("MSXML2.DOMDocument");      
    20 
    21                 xmlDoc.async = "false";        //不启用异步,保证加载文件成功之前不会进行下面操作
    22                 xmlDoc.loadXML(txt);
    23             }
    24 
    25             console.log(xmlDoc);
    26         }

    如果浏览器支持window.DOMParser对象,则直接用它的parseFromString()方法加载xml字符串。

    IE浏览器不支持window.DOMParser,则用loadXML()加载。

    代码中注释都写的很亲你清楚。

  • 相关阅读:
    利用PHP SOAP实现WEB SERVICE
    PHP 简单的加密解密算法
    Java 简单的加密解密算法
    去掉php框架CI默认url中的index.php
    PHP 日期计算函数【差异天数】
    PHP生成迅雷、快车、旋风等软件的下载链接代码实例
    转:苹果iphone APP界面设计尺寸官方版
    iOS开发——密码存储之keychain的使用
    Simple iPhone Keychain Access
    View的简单说明
  • 原文地址:https://www.cnblogs.com/wangfupeng1988/p/3709924.html
Copyright © 2011-2022 走看看