AJAX 对服务器返回的XML的处理js和jquery
来源:互联网 发布:mysql 大型数据库 编辑:程序博客网 时间:2024/05/21 11:07
在AJAX 中,服务器端如果返回的XML 文档,则可以通过异步对象的responseXML 属性来获取器XML 数据。而开发者可以利用DOM 的相关方法对其进行处理。
假设服务器返回的XML 文档,如下所示:
<?xml version="1.0" encoding="gb2312"?><list> <caption>Member List</caption> <member> <name>isaac</name> <class>W13</class> <birth>Jun 24th</birth> <constell>Cancer</constell> <mobile>1118159</mobile> </member> <member> <name>fresheggs</name> <class>W610</class> <birth>Nov 5th</birth> <constell>Scorpio</constell> <mobile>1038818</mobile> </member> </list>客户端获得服务器端的该XML 数据,并将其显示在表格中。代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><head><title>responseXML</title><style><!--.datalist{ border:1px solid #744011; /* 表格边框 */ font-family:Arial; border-collapse:collapse; /* 边框重叠 */ background-color:#ffd2aa; /* 表格背景色 */ font-size:14px;}.datalist th{ border:1px solid #744011; /* 行名称边框 */ background-color:#a16128; /* 行名称背景色 */ color:#FFFFFF; /* 行名称颜色 */ font-weight:bold; padding-top:4px; padding-bottom:4px; padding-left:12px; padding-right:12px; text-align:center;}.datalist td{ border:1px solid #744011; /* 单元格边框 */ text-align:left; padding-top:4px; padding-bottom:4px; padding-left:10px; padding-right:10px;}.datalist tr:hover, .datalist tr.altrow{ background-color:#dca06b; /* 动态变色 */}input{ /* 按钮的样式 */ border:1px solid #744011; color:#744011;}--></style><script language="javascript">var xmlHttp;function createXMLHttpRequest(){ if(window.ActiveXObject) xmlHttp = new ActiveXObject("Microsoft.XMLHttp"); else if(window.XMLHttpRequest) xmlHttp = new XMLHttpRequest();}function getXML(addressXML){ var url = addressXML + "?timestamp=" + new Date(); createXMLHttpRequest(); xmlHttp.onreadystatechange = handleStateChange; xmlHttp.open("GET",url); xmlHttp.send(null);}function addTableRow(sName, sClass, sBirth, sConstell, sMobile){ //表格添加一行的相关操作,可参看7.2.1节 var oTable = document.getElementById("member"); var oTr = oTable.insertRow(oTable.rows.length); var aText = new Array(); aText[0] = document.createTextNode(sName); aText[1] = document.createTextNode(sClass); aText[2] = document.createTextNode(sBirth); aText[3] = document.createTextNode(sConstell); aText[4] = document.createTextNode(sMobile); for(var i=0;i<aText.length;i++){ var oTd = oTr.insertCell(i); oTd.appendChild(aText[i]); }}function DrawTable(myXML){ //用DOM方法操作XML文档 var oMembers = myXML.getElementsByTagName("member"); var oMember = "", sName = "", sClass = "", sBirth = "", sConstell = "", sMobile = ""; for(var i=0;i<oMembers.length;i++){ oMember = oMembers[i]; sName = oMember.getElementsByTagName("name")[0].firstChild.nodeValue; sClass = oMember.getElementsByTagName("class")[0].firstChild.nodeValue; sBirth = oMember.getElementsByTagName("birth")[0].firstChild.nodeValue; sConstell = oMember.getElementsByTagName("constell")[0].firstChild.nodeValue; sMobile = oMember.getElementsByTagName("mobile")[0].firstChild.nodeValue; //添加一行 addTableRow(sName, sClass, sBirth, sConstell, sMobile); }}function handleStateChange(){ if(xmlHttp.readyState == 4 && xmlHttp.status == 200) DrawTable(xmlHttp.responseXML); //responseXML获取到XML文档}</script></head> <body><input type="button" value="获取XML" onclick="getXML('9-4.xml');"><br><br><table class="datalist" summary="list of members in EE Studay" id="member"> <tr> <th scope="col">Name</th> <th scope="col">Class</th> <th scope="col">Birthday</th> <th scope="col">Constellation</th> <th scope="col">Mobile</th> </tr></table></body></html>
我们可以看到,在客户端获得XML 文件的代码如下:
<input type="button" value="获取XML" onclick="getXML('9-4.xml');">
也就是说,是直接取得XML 数据的。而实际开发中返回XML 数据的工作是通过服务器端(如:ASP.NET、JSP等)的代码动态生成的。换句话说,getXML('...')中的文件地址应该是.aspx 或.jsp等动态页面的后缀。
使用jQuery 框架实现
如果在客户端使用jQuery 框架,实现AJAX 获得服务器端的XML数据。
代码如下:
<html><head> <title> demo </title> <meta name="Author" content="xugang" /> <script language="javascript" src="jquery.min.js"></script> <script type="text/javascript"> function getXML(addressXML){ //使用jquery的ajax方法 $.ajax({ type:"GET", url:addressXML, dataType:"xml", //返回类型(区分大小写) success:function(myXML){ //each 遍历每个<member>标记 $(myXML).find("member").each( function(){ var oMember="",sName="",sClass="",sBirth="",sConstell="",sMobile=""; sName = $(this).find("name").text(); sClass = $(this).find("class").text(); sBirth = $(this).find("birth").text(); sConstell = $(this).find("constell").text(); sMobile = $(this).find("mobile").text(); //添加行 $("#member").append($("<tr><td>"+sName +"</td><td>" + sClass +"</td><td>" + sBirth +"</td><td>" + sConstell +"</td><td>" + sMobile +"</td></tr>")); } ) } }) } </script></head><body> <input type="button" value="获取XML" onclick="getXML('9-4.xml');"> <br/> <TABLE class="datalist" id="member"> <TR> <TH scope="col">Name</TH> <TH scope="col">Class</TH> <TH scope="col">Birthday</TH> <TH scope="col">Constellation</TH> <TH scope="col">Mobile</TH> </TR> </TABLE></body></html>
服务器端传递XML 数据的方式不变。
- AJAX 对服务器返回的XML的处理js和jquery
- AJAX对服务器返回XML的处理方法
- 【js与jquery】jquery对服务器端返回xml格式数据的解析和处理
- AJAX 学习笔记[四] AJAX 对服务器返回的XML 的处理
- 使用jquery处理ajax返回的XML、无刷新技术
- 【js与jquery】jquery对返回json格式数据的处理和解析
- Ajax异步处理和利用jquery对Ajax的使用
- js操作Xml(向服务器发送Xml,处理服务器返回的Xml)(IE下有效)
- js操作Xml(向服务器发送Xml,处理服务器返回的Xml)(IE下有效)
- ajax处理xml返回的文件
- ajax处理返回的xml文件
- AJAX处理以XML返回的响应
- ajax处理返回的xml格式数据
- Ajax对xml信息的接收和处理
- 处理Ajax返回的js脚本
- 用js处理ajax返回的数据
- AJAX建立和服务器连接,接收服务器技术处理服务器返回的数据
- js+jQuery+ajax,处理数据和功能的实现
- javascript 中的 this
- 黑马程序员————面向对象6(day10)
- why weblogic username password in java pid cmd parameters
- 第一篇 定个计划吧
- 将博客搬至CSDN
- AJAX 对服务器返回的XML的处理js和jquery
- ocp培训第二天
- 友盟更新 — 关于android 版本更新
- 四旋翼飞行器结构和原理
- 互联网产品设计的核心要素
- ubuntu ibus 输入框消失 不在任务栏显示
- 内联函数 和 宏定义 区别
- 计算机各种语言经典书籍必看
- dtplayer开源