xml数据格式的弊端
1.元数据大,不利于网络传输,费带宽
2.解析不方便
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
window.onload=function(){
var btn=document.getElementById('btn');
btn.onclick=function(){
var username=document.getElementById('username').value;
var pwd=document.getElementById('pwd').value;
// (1)创建xhr对象
var xhr=null;
if(window.XMLHttpRequest){
xhr=new XMLHttpRequest();
}else{
xhr=new ActiveXObject('Microsoft');
}
var param='name='+username+'&pwd='+pwd;
xhr.open('post','09_phpDemoXML.php',true);
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
// (3)发送请求
xhr.send(param); // post请求时 添加发送的数据
// (4)回调函数
xhr.onreadystatechange=function(){
if(xhr.readyState==4){
if(xhr.status==200){
var data= xhr.responseXML;
var booklist=data.getElementsByTagName('booklist');
//获取第一本书
var books=booklist[0].children;
//获取第一本书的书名
var name=books[0].children[0].innerHTML;
//获取第一本书的作者
var author=books[0].children[1].innerHTML;
//获取第一本书的详情
var desc=books[0].children[2].innerHTML;
//输出书的详细信息
console.log(name+'=='+author+'=='+desc);
//获取第二本书
var books=booklist[0].children;
//获取第二本书的书名
var name=books[0].children[0].innerHTML;
//获取第二本书的作者
var author=books[0].children[1].innerHTML;
//获取第一本书的详情
var desc=books[0].children[2].innerHTML;
//输出书的详细信息
console.log(name+'=='+author+'=='+desc);
//获取第三本书
var books=booklist[0].children;
//获取第三本书的书名
var name=books[0].children[0].innerHTML;
//获取第三本书的作者
var author=books[0].children[1].innerHTML;
//获取第三本书的详情
var desc=books[0].children[2].innerHTML;
//输出书的详细信息
console.log(name+'=='+author+'=='+desc);
}
}
}
}
}
}
}
</script>
</head>
<body>
<form>
账户:<input type="text" name="userName" id="username" />
<span id="span_01"></span>
<br />
密码:<input type="password" name="pwd" id="pwd"/>
<br />
<input type="button" value="提交数据" id="btn"/>
</form>
</body>
</html>
php代码如下:
<?php
header('Content-type:text/xml;');
// 添加动态的数据
$arr = array();
$arr[0]=array("name"=>"三国演义","author"=>"罗贯中","desc"=>"一个沙发纷争的年代");
$arr[1]=array("name"=>"水浒传","author"=>"施耐庵","desc"=>"108个傻子");
$arr[2]=array("name"=>"西游记","author"=>"吴承恩","desc"=>"佛教和道教斗争");
?>
<?xml version="1.0" encoding='utf-8' ?>
<booklist>
<book>
<name><?php echo $arr[0]["name"] ?></name>
<author><?php echo $arr[0]["author"] ?></author>
<desc><?php echo $arr[0]["desc"] ?></desc>
</book>
<book>
<name><?php echo $arr[1]["name"] ?></name>
<author><?php echo $arr[1]["author"] ?></author>
<desc><?php echo $arr[1]["desc"] ?></desc>
</book>
<book>
<name><?php echo $arr[2]["name"] ?></name>
<author><?php echo $arr[2]["author"] ?></author>
<desc><?php echo $arr[2]["desc"] ?></desc>
</book>
</booklist>
json数据格式
json数据和普通数据的js对象区别
1.json数据没有变量
2.json形式的数据结尾没有分号
3.json中的键必须使用双引号包住
var str='{"name":"张三","age":"23"}'; // 字符串的json格式
var obj=JSON.parse(str); //将json字符串转换为对象
console.log(obj);
// 将对象 转换为字符串的json格式
var str1=JSON.stringify(obj);// 把对象转成字符串
console.log(str1);// {"name":"张三","age":"23"}