zoukankan      html  css  js  c++  java
  • javascript读取xml文件

    什么是 XML?

    • XML 指可扩展标记语言(EXtensible Markup Language)
    • XML 是一种标记语言,很类似 HTML
    • XML 的设计宗旨是传输数据,而非显示数据
    • XML 标签没有被预定义。您需要自行定义标签。
    • XML 被设计为具有自我描述性。
    • XML 是 W3C 的推荐标准

    XML文件

    <note>
        <id>1</id>
        <name>SevenNight</name>
        <sex></sex>
        <style>12</style>
    </note>

    1、把 XML 文档解析到 XML DOM 对象中:

    if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
    } else {// code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    
    xmlhttp.open("GET","Test.xml",false);
    xmlhttp.send();
    xmlDoc=xmlhttp.responseXML;

    //读取节点
    xmlDoc.getElementsByTagName("id")[0].childNodes[0].nodeValue;

    xmlDoc.getElementsByTagName("name")[0].childNodes[0].nodeValue;

    xmlDoc.getElementsByTagName("sex")[0].childNodes[0].nodeValue;

    xmlDoc.getElementsByTagName("style")[0].childNodes[0].nodeValue;

    跨域访问

    出于安全方面的原因,现代的浏览器不允许跨域的访问。

    这意味着,网页以及它试图加载的 XML 文件,都必须位于相同的服务器上、同一域上

    假如你打算在自己的网页上使用上面的例子,则必须把 XML 文件放到自己的服务器上。否则,xmlDoc.load() 将产生错误 "Access is denied"。

    如果想不再同一域上能访问,还可以在服务器相应头设置允许跨域访问

    //表示任何网站都可以请求
    response.setHeader("Access-Control-Allow-Origin", "*");

    //表示只有http://www.baidu.com能请求
    response.setHeader("Access-Control-Allow-Origin", "http://www.baidu.com");

    访问响应信息

    HTTP/1.1 200 OK
    Set-Cookie: AO="o=1&s=1&dnt=1"; Version=1; Domain=yahoo.com; Max-Age=630720000; Expires=Sat, 18-Jun-2033 10:07:41 GMT; Path=/
    Access-Control-Allow-Origin: *    //表示允许跨域的相应头
    Cache-Control: public, max-age=899
    Content-Type: text/xml;charset=utf-8
    Content-Encoding: gzip
    Vary: Accept-Encoding
    Date: Sun, 23 Jun 2013 10:07:40 GMT

    在html中,可以设置

    <meta http-equiv="Access-Control-Allow-Origin" content="*">
    <meta http-equiv="Access-Control-Allow-Origin" content="http://www.baidu.com">
  • 相关阅读:
    python异常触发及自定义异常类
    python for i in range(x)应用的问题
    季羡林 暮年沉思录
    再谈python的list类型参数及复制
    Python 列表推导式
    JavaScript:垃圾数据是如何自动回收的?
    JavaScript:this的用法
    JavaScript:浅谈闭包及其回收原则
    ES6:async / await ---使用同步方式写异步代码
    五大主流浏览器与四大浏览器内核
  • 原文地址:https://www.cnblogs.com/cnsevennight/p/3946096.html
Copyright © 2011-2022 走看看