Ajax与xml数据格式// Ajax与json数据格式

xml兼容性很好,任何浏览器都可以调用其中的数据

1、Ajax与xml数据格式

data.xml

<?xml version="1.0" encoding="utf-8"?>//文档声明
<bookstore>
	<book>
		<name>三国演义</name>
		<category>文学</category>
		<desc>描述</desc>
	</book>	
	<book>
		<name>水浒传</name>
		<category>文学</category>
		<desc>草寇or英雄豪杰</desc>
	</book>	
	<book>
		<name>西游记</name>
		<category>文学</category>
		<desc>妖魔鬼怪牛鬼蛇神什么都有</desc>
	</book>	
	<book>
		<name>红楼梦</name>
		<category>文学</category>
		<desc>宝哥哥与林妹妹的爱情史</desc>
	</book>	
</bookstore>
xml.html

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>xml</title>
</head>
<body>
	<input type="button" id="btn" value="点击我显示"></input>
	<div>
		<table id="bookInfo"></table>
	</div>
</body>
</html>

<script type="text/javascript">
	var btn=document.getElementById('btn');
	btn.οnclick=function(){
		showBookInfo();
	}
	function showBookInfo(){
		var xhr=null;
		if(window.XMLHttpRequest){
			xhr=new XMLHttpRequest();
		}else{
			xhr=new ActiveObject('Microsoft.XMLHTTP');
		}
		var url='./data.xml';
		xhr.open('get',url,true);
		xhr.send(null);
		xhr.onreadystatechange=function(){
			if(xhr.readyState==4 && xhr.status==200){
				var data=xhr.responseXML;
				// console.log(data);
				var bookstore=data.getElementsByTagName('bookstore')[0];
				// console.log(bookstore);
				var books=bookstore.getElementsByTagName('book');

				var bookInfo=document.getElementById('bookInfo');
				var newT='';

				for(var i=0;i<books.length;i++){
					var name=books[i].getElementsByTagName('name')[0];
					var category=books[i].getElementsByTagName('category')[0];
					var desc=books[i].getElementsByTagName('desc')[0];
					// console.log(getNodeText(name));
					// console.log(getNodeText(category));
					// console.log(getNodeText(desc));
					newT+="<tr style='color:#000;'><td style='border:1px solid #ddd;'>"+getNodeText(name)+"</td><td>"+getNodeText(category)+"</td><td>"+getNodeText(desc)+"</tr>";
				}
				var tbody=document.createElement("tbody");
				tbody.innerHTML=newT;
				bookInfo.appendChild(tbody);
			}
		}
	}
	function getNodeText(node){
		if(window.ActiveXObject){
			return node.text;
		}else{
			if(node.nodeType==1){
				return node.textContent;
			}
		}
	}
</script>


2、Ajax与json数据格式
data.json

{
	"total":"4",
	"data":[
		{
			"name":"三国演义",
			"category":"文学",
			"desc":"一个军阀混战的年代"
		},{
			"name":"水浒传",
			"category":"文学",
			"desc":"草寇or英雄好汉"
		},{
			"name":"西游记",
			"category":"文学",
			"desc":"妖魔鬼怪牛鬼蛇神什么都有"
		},{
			"name":"红楼梦",
			"category":"文学",
			"desc":"一个封建王朝的缩影"
		}
	],
	"obj":{"adf":"adf"}
}
json.html

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>xml</title>
</head>
<body>
	<input type="button" id="btn" value="点击我显示"></input>
	<div>
		<table id="bookInfo"></table>
	</div>
</body>
</html>

<script type="text/javascript">
	var btn=document.getElementById('btn');
	btn.οnclick=function(){
		showBookInfo();
	}
	function showBookInfo(){
		var xhr=null;
		if(window.XMLHttpRequest){
			xhr=new XMLHttpRequest();
		}else{
			xhr=new ActiveObject('Microsoft.XMLHTTP');
		}
		var url='./data.json';
		xhr.open('get',url,true);
		xhr.send(null);
		xhr.onreadystatechange=function(){
			if(xhr.readyState==4 && xhr.status==200){
				var data=xhr.responseText;//获得的是字符串
				console.log(typeof data);//string
				//转换成json对象
				var data=JSON.parse(data);
				console.log(data);
				var data=data.data;
				var total=data.total;
				console.log(total);
				console.log(data.length);//4
				console.log(data[0]);
				console.log(data[0].name);//name

				var tbody=document.createElement('tbody');
				var newT='';//表示字符串
				for(var i=0;i<data.length;i++){
					newT+='<tr><td>'+data[i].name+'</td><td>'+data[i].category+'</td><td>'+data[i].desc+'</td></tr>';
				}
				console.log(typeof newT);
				console.log(newT);
				tbody.innerHTML=newT;
				// tbody.appendChild(newT);//适用于添加节点;newT只是一个字符串,所以在此处不适合
				var bookInfo=document.getElementById('bookInfo');
				bookInfo.appendChild(tbody);
			}
		}
	}
</script>























评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值