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()加载。

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

  • 相关阅读:
    ocos 信号量
    C 语言 输入字符串 并计算输入的字符的长度
    C 语言简历一个文件夹 并自己输入字符 来取文件夹名字
    C语言 创建一个 txt 文件 bin输入字符 保存文件在工作文件夹里
    C语言 之 printf () 函数你真的会用吗?
    Impala的命令COMPUTE STATS
    python 函数eval
    YouTube排名第一的励志英文演讲《Dream(梦想)》
    impala 表迁移方式 partquet数据文件移动方法
    Python中@staticmethod和@classmethod的作用和区别
  • 原文地址:https://www.cnblogs.com/wangfupeng1988/p/3709924.html
Copyright © 2011-2022 走看看