加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

李伟大侠之作--ajax解析xml详解,看后不用再看别的帖子了

发布时间:2020-12-16 03:05:34 所属栏目:百科 来源:网络整理
导读:?原创地址: http://www.3gput.com/forum.php?mod=viewthreadtid=130??也是本人原创论坛,请大家支持 学习ajax的朋友一定知道,ajax的服务端可以返回多种格式的数据给客户端,以达到方便交互的效果,服务器返回Xml有的优点是: 1) 表现更加清晰,很容易看明
?原创地址: http://www.3gput.com/forum.php?mod=viewthread&tid=130??也是本人原创论坛,请大家支持

学习ajax的朋友一定知道,ajax的服务端可以返回多种格式的数据给客户端,以达到方便交互的效果,服务器返回Xml有的优点是:
1) 表现更加清晰,很容易看明白,也很通用
2)实现数据和视图的分离,使得客户端可以灵活的运用数据,显示不同的效果等
说了那么多xml,肯定有好多朋友还在犯嘀咕,xml到底是什么东西啊?下面给大家提供些资料仅供参考

Xml的基本概念:

? ?? ?XML(Extensible Markup Language)即可扩展标记语言,它与HTML一样,都是SGML(Standard Generalized Markup Language,标准通用标记语言)。Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具。扩展标记语言XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简单易于掌握和使用。


? ?? ?XML与HTML的设计区别是:XML是用来存储数据的,重在数据本身。而HTML是用来定义数据的,重在数据的显示模式。

??XML的简单使其易于在任何应用程序中读写数据,这使XML很快成为数据交换的唯一公共语言,虽然不同的应用软件也支持其它的数据交换格式,但不久之后他们都将支持XML,那就意味着程序可以更容易的与Windows、Mac OS,Linux以及其他平台下产生的信息结合,然后可以很容易加载XML数据到程序中并分析他,并以XML格式输出结果。



Xml的基本格式: 文档中成对的自定义标签出现
看一个实例:
<?xml version='1.0' encoding='UTF-8'?>
< list>
? ?<emp>
? ???<empno>1</empno>
? ???<empname>张三</empname>
? ???<emppass>123</emppass>
? ???<empsex>男</empsex>
? ???<empsalary>10000</empsalary>
? ?</emp>
< /list>

那如果ajax和服务端交互的过程中,服务器返回一个xml,我们怎么处理呢?下面我们用一个实例来看看
客户端请求代码 responseXML.html:

Code:
  1. <?xml?version='1.0'?encoding='UTF-8'?>??
  2. <list>??
  3. ???<emp>??
  4. ?????<empno>1</empno>??
  5. ?????<empname>张三</empname>??
  6. ?????<emppass>123</emppass>??
  7. ?????<empsex></empsex>??
  8. ?????<empsalary>10000</empsalary>??
  9. ???</emp>??
  10. ?????
  11. ?????<empno>2</empno>??
  12. ?????<empname>李四</empname>??
  13. ?????<empsex></empsex>??
  14. ?????<empno>3</empno>??
  15. ?????<empname>王五</empname>??
  16. ?????<empno>4</empno>??
  17. ?????<empname>大头6</empname>??
  18. ???
  19. </list>??

ajax请求的js代码ajax.js:

Code:
  1. //ajax引擎函数??
  2. function?ajaxget(url,params,fun_name){??
  3. ??
  4. //初始化Ajax引擎??
  5. var?xhr?=?new?XMLHttpRequest();??
  6. ??
  7. var?url1=url+"?"+params+"&r="+Math.random();??
  8. //创建一个新的请求??
  9. xhr.open("get",url1,true);??
  10. //发送请求,并且接收服务器回应??
  11. xhr.send(null);??
  12. //处理服务器返回的结果??
  13. xhr.onreadystatechange=function?(){??
  14. //判断服务器交互状态值是否为4,为4表明交互完成??
  15. ?????if(xhr.readyState==4){??
  16. ???????//调用另外一个时间处理的方法??
  17. ???????fun_name(xhr);??
  18. ?????}??
  19. ???}??
  20. ?????
  21. }??

客户端代码请求:

<!DOCTYPE?html?PUBLIC?"-//W3C//DTD?XHTML?1.0?Transitional//EN"?"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">??
  • <html?xmlns="http://www.w3.org/1999/xhtml">??
  • <head>??
  • <meta?http-equiv="Content-Type"?content="text/html;?charset=gb2312"?/>??
  • <script?language="javascript"?type="text/javascript"?src="../include/ajax.js"></script>??
  • <script?language="javascript"?type="text/javascript"?>??
  • function?dispTableXml(){??
  • //定义请求的url??
  • ??var?url="./response-xml-server.xml";??
  • //定义参数??
  • ??var?params="page=1";??
  • //调用ajax的引擎,由指定函数返回结果??
  • ??ajaxget(url,disp);??
  • }??
  • function?disp(xhr){??
  • //处理服务器端返回的xml代码??
  • //创建一个xml对象,根节点??
  • var?dom?=?xhr.responseXML;??
  • var?emp?=?dom.getElementsByTagName("emp");??
  • //alert(emp.length);??
  • //创建表格??
  • var?table?=?document.createElement("table");??
  • var?arr?=?new?Array("empno","empname","emppass","empsex","empsalary");??
  • table.setAttribute("border","2");??
  • for(var?i=0;i<emp.length;i++){??
  • ???//创建每一行??
  • ???var?tr?=?document.createElement("tr");??
  • ???for(var?j=0;j<arr.length;j++){??
  • ??????//创建一列??
  • ??????var?td?=?document.createElement("td");??
  • ??????//获取每一个emp对象的?属性值??
  • ????????
  • ??????var?text=emp[i].getElementsByTagName(arr[j])[0].firstChild.nodeValue;??
  • ??????//创建一个文本节点??
  • ??????var?textnode?=?document.createTextNode(text);??
  • ??????//把文本节点追加到td中??
  • ???????td.appendChild(textnode);??
  • ??????//把td追加到tr中??
  • ???????tr.appendChild(td);??
  • ???}??
  • ??//将每一行添加到table中??
  • ??table.appendChild(tr);??
  • }??
  • //创建每一个文本节点??
  • var?div=document.getElementById("div1");??
  • ?????div.appendChild(table);??
  • </script>??
  • <title>无标题文档</title>??
  • </head>??
  • <body>??
  • <input?type="button"?name="button1"?value="XML显示表格"?onclick="dispTableXml()"?/>??
  • <hr?/>??
  • <div?id="div1"></div>??
  • </body>??
  • </html>??
  • ?

    实现的效果:把xml文档的内容通过Javascript Dom方法转换成Html的table显示
    有需要的朋友可以学习下
    资源下载地址:ajax20110308.zip

    原文地址:http://www.3gput.com/forum.php?mod=viewthread&tid=130&extra=

    (编辑:李大同)

    【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

      推荐文章
        热点阅读