利用 xml 实现数据传输
用户名是否可用 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>
评论