>>分享Web前端开发技术,并对孙卫琴的《精通Vue.js:Web前端开发技术详解》提供技术支持 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 25917 个阅读者 刷新本主题
 * 贴子主题:  AJAX 处理XML数据 回复文章 点赞(0)  收藏  
作者:sunshine    发表时间:2019-08-11 23:54:12     消息  查看  搜索  好友  邮件  复制  引用

  

AJAX  XML 范例

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

AJAX XML 范例

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

function loadXMLDoc() {

  var xhttp = new XMLHttpRequest();

  xhttp.onreadystatechange = function() {

    if (this.readyState == 4 && this.status == 200) {

      myFunction(this);

    }

  };

  xhttp.open("GET", "/try/demo_source/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;

}

范例

table,th,td {

  border : 1px solid black;

  border-collapse: collapse;

}

th,td {

  padding: 5px;

}

<button type="button" onclick="loadXMLDoc()">获取我收藏的 CD</button>

范例解析 - 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 文件。





程序猿的技术大观园:www.javathinker.net



[这个贴子最后由 flybird 在 2020-02-27 19:03:17 重新编辑]
  Java面向对象编程-->Lambda表达式
  JavaWeb开发-->Web运作原理(Ⅱ)
  JSP与Hibernate开发-->映射对象标识符
  Java网络编程-->对象的序列化与反序列化
  精通Spring-->通过Axios访问服务器
  Vue3开发-->通过Axios访问服务器
  vue3.0 代理Proxy API
  创建vue cli 插件
  彻底明白VUE中的done参数和函数作用
  总结:Vue的生命周期钩子函数的调用时机
  Vue选项的用法
  vue中axios异步调用接口的坑
  BootStrap, React, Vue的比较
  Vue项目的性能优化之路
  JS对树形数据的遍历和过滤,
  Vue. 入门篇
  HTML表单元素的用法
  CSS Border(边框)
  HTML 区块:div和span元素
  JavaScript 测试 jQuery
  JavaScript 函数定义
  更多...
 IPIP: 已设置保密
楼主      
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


中文版权所有: JavaThinker技术网站 Copyright 2016-2026 沪ICP备16029593号-2
荟萃Java程序员智慧的结晶,分享交流Java前沿技术。  联系我们
如有技术文章涉及侵权,请与本站管理员联系。