php可以接收处理xml信息
js也可以处理接收xml信息
开发微信接口,微信里边大部分数据都是通过xml形式给组织起来的
这样就有需求,php网站要和微信进行数据交换
静态网站(html/css/js)也要微信进行数据交换
ajax负责请求xml和接收xml信息,dom负责处理xml信息
dom:php里边,dom是php与xml(html)之间的沟通桥梁
js里边,dom是js与(x)html之间沟通桥梁
例1 Ajax对xml信息的接收和处理
xml代码:
<?xml version="1.0" encoding="utf-8"?>
<message>
<msg>
<sender>
周苍
</sender>
<jie>潘杉</jie>
<content>周苍 潘杉 周欣怡一家人 </content>
</msg>
<msg><sender>
周洪海
</sender>
<jie>韩志勇</jie>
<content>周洪海 韩志勇 周行知一家人 </content>
</msg>
</message>
html代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>新建网页</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="description" content="" />
<meta name="keywords" content="" />
<script type="text/javascript">
//ajax无刷新方式获得第n页信息
function showxml(){
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function(){
if(xhr.readyState==4){
//xhr.responseXML;//类比:Document对象
console.log(xhr.responseXML.firstChild);
}
}
xhr.open('get','./js_09.xml');
xhr.send(null);
}
</script>
<style type="text/css">
h2{width:700px; margin:auto;
background-color:pink;text-align:center;}
</style>
</head>
<body>
<h2>实现对xml的接收处理</h2>
<input type="button" value="请求" onclick="showxml()"/>
</body>
</html>
结果如下图所示:
例2 如何获取文字内容?
我们假设一个变量
var xmldom=xhr.responseXML;
var messages=xhr.responseXML.firstChild;
//console.log(message);
//console.log(message.childNodes);
var msgs=xmldom.getElementsByTagName('msg');
console.log(msgs);
// msgs[0]-->元素节点对象
for(var k in msgs[0]){
console.log(k);//输出元素节点对象的成员名称
}
完整代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>新建网页</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="description" content="" />
<meta name="keywords" content="" />
<script type="text/javascript">
//ajax无刷新方式获得第n页信息
function showxml(){
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function(){
if(xhr.readyState==4){
//xhr.responseXML;//类比:Document对象
var xmldom=xhr.responseXML;
var messages=xhr.responseXML.firstChild;
//console.log(message);
//console.log(message.childNodes);
var msgs=xmldom.getElementsByTagName('msg');
console.log(msgs);
// msgs[0]-->元素节点对象
for(var k in msgs[0]){
console.log(k);//输出元素节点对象的成员名称
}
}
}
xhr.open('get','./js_09.xml');
xhr.send(null);
}
</script>
<style type="text/css">
h2{width:700px; margin:auto;
background-color:pink;text-align:center;}
</style>
</head>
<body>
<h2>实现对xml的接收处理</h2>
<input type="button" value="请求" onclick="showxml()"/>
</body>
</html>
例3 根据波利亚《怎样解题表》的思维方法:
根据波利亚《怎样解题表》的建议:如果需要的话,你能不能改变代码或数据,或者两者都改变