阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      AJAX XML

      AJAX XML 实例

      AJAX 可用来与 XML 文件进行交互式通信。

      下面的例子将演示网页如何使用 AJAX 来读取来自 XML 文件的信息:

      <!DOCTYPE html>
      <html>
      <head>
      <meta charset="utf-8">
      <style>
      table,th,td {
        border : 1px solid black;
        border-collapse: collapse;
      }
      th,td {
        padding: 5px;
      }
      </style>
      </head>
      <body>
      
      <h1>XMLHttpRequest 对象</h1>
      
      <button type="button" onclick="loadXMLDoc()">获取我收藏的 CD</button>
      <br><br>
      <table id="demo"></table>
      
      <script>
      function loadXMLDoc() {
        var xhttp = new XMLHttpRequest();
        xhttp.onreadystatechange = function() {
          if (this.readyState == 4 && this.status == 200) {
            myFunction(this);
          }
        };
        xhttp.open("GET", "cd_catalog.xml", true);
        xhttp.send();
      }
      function myFunction(xml) {
        var i;
        var xmlDoc = xml.responseXML;
        var table="<tr><th>Artist</th><th>Title</th></tr>";
        var x = xmlDoc.getElementsByTagName("CD");
        for (i = 0; i <x.length; i++) {
          table += "<tr><td>" +
          x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue +
          "</td><td>" +
          x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue +
          "</td></tr>";
        }
        document.getElementById("demo").innerHTML = table;
      }
      </script>
      
      </body>
      </html>
      

      实例解析 - loadXMLDoc() 函数

      当用户点击上面的”获取我收藏的 CD”这个按钮,就会执行 loadXMLDoc() 函数。

      loadXMLDoc() 函数创建 XMLHttpRequest 对象,添加当服务器响应就绪时执行的函数,并将请求发送到服务器。

      当服务器响应就绪时,会构建一个 HTML 表格,从 XML 文件中提取节点(元素),最后使用 XML 数据的 填充 id=“demo” 的表格元素:

      异步加载 XML 文档

      function loadXMLDoc() {
        var xhttp = new XMLHttpRequest();
        xhttp.onreadystatechange = function() {
          if (this.readyState == 4 && this.status == 200) {
          myFunction(this);
          }
        };
        xhttp.open("GET", "cd_catalog.xml", true);
        xhttp.send();
      }
      function myFunction(xml) {
        var i;
        var xmlDoc = xml.responseXML;
        var table="<tr><th>Artist</th><th>Title</th></tr>";
        var x = xmlDoc.getElementsByTagName("CD");
        for (i = 0; i <x.length; i++) { 
          table += "<tr><td>" +
          x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue +
          "</td><td>" +
          x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue +
          "</td></tr>";
        }
        document.getElementById("demo").innerHTML = table;
      }
      

      AJAX 服务器页面

      上面这个例子中使用的服务器页面实际上是一个名为 cd_catalog.xml XML 文件。

      卖前端学习教程

      只需几十元,就能买到培训班的内部教程!开启高薪之路!

      零基础小白阿里P7的教程都有!

      同时长期收购所有培训班的前端教程

      目录
      目录