开发者学堂课程【Ajax 前端开发入门与实战:解析 xml 数据格式】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/595/detail/8531
解析 xml 数据格式
一.解析 xml 数据格式的案例:
什么事解析:通过数据解析得到想要的值
1.获取图书信息接口
地址 |
/server/getBooks.php |
作用描述 |
获取图书信息 |
请求类型 |
Get 请求 |
参数 |
无 |
返回数据格式 |
Xml格式 |
返回数据说明 |
name 为书名 author 为作者 desc 为描述,样例数据如下 <booklist>e <book> <name>三国演义<name> <author>罗贯中</author> <desc>一个杀伐纷争的年代</desc>. </book> </booklist> |
2.里面有 server 代码,要获取服务器里面的数据,会要写好的表格结构,html 中有结构,然后在里面获取数据的代码,写 js 代码
<script type="text/javascript">
/*做服务器数据的请求*/
window.onload =function(){
var xhr = new XMLHttpRequest();
/*在接口文档中有要求*/
xhr.open("get","./server/getBooks.php",true); xhr.send(null);
/*回调函数*/
xhr.onreadystatechange = function(){
if(xhr.readyState ==4){
if(xhr.status == 200){
/*获取服务器数据*/
var result= xhr.responseXML
/*booklist 是一个数组,获取数组*/
var books=result.getElementByTagIdName(〝
booklist
〞)[0].getElementByTagIdName(〝book〞);
//booklist 是一个数组
var newHtml
=
document.getElemenById(
"
bookContainer
"
).innerHtml;
for(var
i =
0;
i
<books.length;
i
++)f
var itemBook =books[i];
var name =
itemBook
.
getElementsByTagName
(〝name〞)
[o].textcontent
;
var author
=
itemBook.getElementsByTagName("author")[o].textcontent
var desc =
itemBook.getElementsByTagName("desc")[0].textContent;
var tempHtml
=
"
<tr><td>
"
+name+
"
</td><td>
"
+author+
"
<
td></t
d
>"
+desc+
"
</td></tr>
";
newHtml +=
tempHtml
;
/*
console.log("tempHtml
=
"+
tempHtml);
*/
}
document.getElemenById(
"
bookContainer
"
).innerHtml = newHtml;
}
}
};
};
</script>
<div id=
"
bookContainer
"
>
<table>
<tr>
<th>书名</th>
<th>作者</th>
<th>描述</th>
</tr>
<tr>
<td>三国演义</td>
<td>罗贯中</td>
<td>一个杀伐纷争的年代</td>
</tr>
</table>
</div>
在网页控制台中有 Network ,可以看见 getBook.php 接口
3.在 getBook.php 中
<?php
header("Content-Type:text/xml;");
//这里设置响应头信息,保证浏览器可以把相应内容识别为 xml 文件类型
//模拟数据,以下是数组
$arr =array();
$arr[0]=array("name"=>"三国演义”,"author”=>"罗贯中”,"desc”=>”一个杀伐纷争的年代”);
$arr[1]=array("name"=>"水浒传”,author"=>"施耐庵”,"desc"=>"108条好汉的故事”);
$arr[2
]
=array("name”=>"西游记” “author”=>"吴承恩”"desc"=>"佛教与道教斗争”);
$arr[3
]
=array(name"=>"红楼梦”,"author"=>“曹雪芹”,"desc"=>“一个封建王朝的缩影”);?>
<?xml version=“1.0"encoding="utf-8"?>
<booklist>
//booklist 根节点
<?php
//foreach 循环,arr 数组
foreach(
$
arr as
$
key =>
$
value)
{
?>
//有几个数组就会有几个 book
<book>
<name><?php echo $value['name'] ?></name>
<author<?php echo $value['author']?x/author>
<desc?php echo $value['desc']?></desc>
</book>
<?php
}
?>
</booklist>
网页展示:
获取下面的信息,放在上面的网页中(就是数据解析的过程)
最后形成网页:
数据就会在表格中