`
chaoyi
  • 浏览: 290465 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

返回XML数据

 
阅读更多

本章目标
使用AJAX + XML完成操作;
可以直接在后台利用DOM动态生成XML文件,并交付给AJAX进行显示。

 

返回XML数据
在XMLHttpRequest对象中也可以使用responseXML()方法接收一组返回的XML数据,这些返回的XML数据可以动态生成(利用JDOM工具将数据库中的数据变为XML文件),也可以直接读取一个XML文件,当客户端接收到读取的XML文件之后,可以通过DOM解析的方式对数据进行操作。

 

要回传的XML文件 —— allarea.xml

<?xml version="1.0" encoding="UTF-8"?>
<allarea>
	<area>
		<id>1</id>
		<title>北京</title>
	</area>
	<area>
		<id>2</id>
		<title>天津</title>
	</area>
	<area>
		<id>3</id>
		<title>南京</title>
	</area>
</allarea>

 

使用AJAX解析XML,并生成下拉列表框

<html>
<head>
<title>使用 Ajax 解析XML,并生成下拉表框</title>
<script type="text/javascript">
	var xmlHttp;//Ajax 核心对象名称
	function createXMLHttp(){//创建 XMLHttpRequest 核心对象
			xmlHttp = new XMLHttpRequest();//兼容IE9,最新的火狐,最新的谷歌
	}
	function getCity(){
		createXMLHttp();//建立 XMLHttp 核心对象
		xmlHttp.open("POST", "allarea.xml");//设置一个请求
		//设置请求完成之后处理的回调函数
		xmlHttp.onreadystatechange=getCityCallback;
		xmlHttp.send(null);//发送请求,不传递任何参数
	}
	function getCityCallback(){//定义回调函数
		if(xmlHttp.readyState==4){//数据返回完毕
			if(xmlHttp.status==200){//HTTP操作正常
				//取得 allarea 节点下的全部节点
				var allarea = xmlHttp.responseXML.getElementsByTagName("allarea")[0].childNodes;
				//取得下拉列表框 city 的对象
				var select=document.getElementById("city");
				select.length = 1;//显示一个内容
				select.options[0].selected = true;//设置第一个为选中状态
				//循环 allarea 下的子节点
				for(var i=0; i<allarea.length; i++){
					//取得每一个<area>
					var area = xmlHttp.responseXML.getElementsByTagName("allarea")[0];
					//取得每一个<area>的中<id>元素内容
					var id=area.getElementsByTagName("id")[i].firstChild.nodeValue;
					//取得每一个<area>的中<title>元素内容
					var title =area.getElementsByTagName("title")[i].firstChild.nodeValue;
					//创建 option 元素
					var option=document.createElement("option");
					//在 option 元素中设置显示的内容
					option.setAttribute("value",id);
					//在 option 中添加显示的文本内容
					option.appendChild(document.createTextNode(title));
					//在下拉框中加入 option 属性
					select.appendChild(option);
				}
			}
		}
	}
</script>
</head>
<body onload="getCity()"><!-- 页面加载时调用 -->
<form action=""  method="post">
	请选择喜欢的城市:
	<select id="city">
		<option value="0"> -请选择城市- </option>
	</select>
</form>
</body>
</html>

效果图:

 
使用XML进行数据交换
现在前台页面接收的数据不再像使用传统MVC那样需要编写Java代码了,而只需要将所需的XML数据传回到页面之中即可,而后台的开发语言,可以任意选择,例如:选择PHP或ASP.NET等,这样一个前台页面在各种开发平台下都可以通用了。



  

小结
通过XML操作可以使数据操作更加的方便,也不受平台限制。
使用AJAX + JavaScript + DOM 操作可以完成各种复杂的前台操作。

 

  • 大小: 67.1 KB
  • 大小: 20.6 KB
0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics