写点什么

利用 xml 实现数据传输

用户头像
天狼
关注
发布于: 2021 年 02 月 25 日

用户名是否可用              1 / 0

返回两个数的和              400

登录是否成功                   true/false

数据插是否成功              true/false

 

需要服务器端返回少量的、单一的数据

 

如果我们需要从服务器端返回大量、复杂的数据,如何实现?

 

xml   :服务器端返回 xml 数据

json:服务器端返回 json 数据

 

1、  格式:

 

1)  php 解析 xml

 

l  $dom=new DOMDocument();

l  $dom->loadXML($str);

l  $nd=$dom->getElementsByTagName(“TagName”);

l  $value=$nd->item(0)->nodeValue

 

l  $xml=simplexml_load_string($str);

l  $first = $xml->first;

l  $second= $xml->second;

 

2)  js 解析 xml

 

l  var xml=xmlHttp.responseXML;

l  node=xml.getElementsByTagName(“TagName”);

l  node[0].childNodes[0].nodeValue;

 


2、  案例 1:

 

实现两个数的四则运算

 

php 代码:

 


得到结果后,需要使用字符串连接成一个 xml 格式的字符串,如:需要一个根元素,下面子元素,最后是具体的值,连接时也可以使用  <<<str 创建 xml 字符串

 

输出这个字符串,默认的响应内容类型:text/html,也就是说客户端仍把代码当做 html 来进行解析,ajax 对象的 responeXML 是不能得到一个 xmldom 对象,必须设置响应头类型为:

text/xml;

 

html 代码:

 


var xml=xhr.responseXML;       得到 ajax 返回的 xmldom 对象

 

xml.getElementsByTagName(‘jia’)[0] :是表示获取 jia 这个元素

xml.getElementsByTagName(‘jia’)[0].childNodes:表示获取 jia 元素下的所有子节点

xml.getElementsByTagName(‘jia’)[0].childNodes[0] :表示获取 jia 元素下的唯一文本节点

xml.getElementsByTagName(‘jia’)[0].childNodes[0].nodeValue:文本节点的值

 

3、  案例 2

 

在页面加载之后,将 goods 表中所有数据显示在表格中

 

<root>

<goods>

<name>222</name>

<price>55.00</price>

</goods>

<goods>

<name>诺 E661</name>

<price>205.00</price>

</goods>

<goods>

<name>诺 E661</name>

<price>200.00</price>

</goods>

</root>

 

用户头像

天狼

关注

还未添加个人签名 2021.02.25 加入

还未添加个人简介

评论

发布
暂无评论
利用xml实现数据传输