Ajax使用XML数据(转老赵)
2009-07-27 16:18
155 查看
今天呢,本示例就讲一下AJAX里面的传递数据问题,大家都知道,ajax传递数据有两种,一种是XML,另一种则是Json
在本示例中,主要讲一下XML的数据传递,而Json放在下个示例中:
XMl是现代计算机中无所不在的数据格式,Ajax应用所处的Web浏览器环境,特别是XMLHttpRequest对象,对于处理XML提供了很好的本地支持,如果XZmlHttpRequest接收到了一个XML内容类型,例如application/xml或test/xml,它将会响应表现为一个DOM!好,下面我们做一个示例来说明《如何使用XML数据改写行星信息的应用》:
下面看段脚本:
<script>
var offset=8;
function showPopup(name,description)
{
var win=new DataPopup(name,description,offset,offset,320,320);
offset+=32;
}
function DataPopup(name,description,x,y,w,h)
{
var bod=document.createElement("div");
document.body.appendChild(bod);
this.contentDiv=document.createElement("div");
this.contentDiv.className="windContents";
this.contentDiv.innerHTML=description;
bod.appendChild(this.contentDiv);
this.win=new windows.Window(bod,name,x,y,w,h);
}
function showInfo(event)
{
var planet=this.id;
var scriptUrl=planet+".xml";
new net.ContentLoader(scriptUrl,parseXML);
}
function parseXML()
{
var name="";
var descrip="";
var xmlDoc=this.req.responseXML;
var elDocRoot=xmlDoc.getElementsByTagName("planet")[0];
if(elDocRoot)
{
attrs=elDocRoot.attributes;
name=attrs.getNamedItem("name").value;
var ptype=attrs.getNamedItem("type").value;
if(ptype)
{
descrip+="<h2>"+ptype+"</h2>";
}
descrip+="<ul>";
for(var i=0;i<elDocRoot.childNodes.length;i++)
{
elChild=elDocRoot.childNodes[i];
if(elChild.nodeName=="info")
{
descrip+="<li>"+elChild.firstChild.data+"</li>\n";
}
}
descrip+="</ul>";
}
else{
alert("no document");
}
top.showPopup(name,descrip);
}
</script>
showInfo函数简单地打开一个封装在ContentLoader对象中的 XMLHttpRequest对象,提供parseXML()方法作为回调。这个回调函数比evalScript()方法稍微麻烦一些,因为我们需要在响应的DOM中导航,从中抽取出数据,然后再手工调用showPopup()方法,!以xml数据为中心的应用中可以使用这些数据!
xml的一个很大优点是有助于对信息进行结构话!。,这个脚本中用parseXMl()将函数中将他们转换成一段HTML的无语立标!
现在对xml数据的传递是否有了更深一步的了解了呢!
有疑问,随时解答!
在本示例中,主要讲一下XML的数据传递,而Json放在下个示例中:
XMl是现代计算机中无所不在的数据格式,Ajax应用所处的Web浏览器环境,特别是XMLHttpRequest对象,对于处理XML提供了很好的本地支持,如果XZmlHttpRequest接收到了一个XML内容类型,例如application/xml或test/xml,它将会响应表现为一个DOM!好,下面我们做一个示例来说明《如何使用XML数据改写行星信息的应用》:
下面看段脚本:
<script>
var offset=8;
function showPopup(name,description)
{
var win=new DataPopup(name,description,offset,offset,320,320);
offset+=32;
}
function DataPopup(name,description,x,y,w,h)
{
var bod=document.createElement("div");
document.body.appendChild(bod);
this.contentDiv=document.createElement("div");
this.contentDiv.className="windContents";
this.contentDiv.innerHTML=description;
bod.appendChild(this.contentDiv);
this.win=new windows.Window(bod,name,x,y,w,h);
}
function showInfo(event)
{
var planet=this.id;
var scriptUrl=planet+".xml";
new net.ContentLoader(scriptUrl,parseXML);
}
function parseXML()
{
var name="";
var descrip="";
var xmlDoc=this.req.responseXML;
var elDocRoot=xmlDoc.getElementsByTagName("planet")[0];
if(elDocRoot)
{
attrs=elDocRoot.attributes;
name=attrs.getNamedItem("name").value;
var ptype=attrs.getNamedItem("type").value;
if(ptype)
{
descrip+="<h2>"+ptype+"</h2>";
}
descrip+="<ul>";
for(var i=0;i<elDocRoot.childNodes.length;i++)
{
elChild=elDocRoot.childNodes[i];
if(elChild.nodeName=="info")
{
descrip+="<li>"+elChild.firstChild.data+"</li>\n";
}
}
descrip+="</ul>";
}
else{
alert("no document");
}
top.showPopup(name,descrip);
}
</script>
showInfo函数简单地打开一个封装在ContentLoader对象中的 XMLHttpRequest对象,提供parseXML()方法作为回调。这个回调函数比evalScript()方法稍微麻烦一些,因为我们需要在响应的DOM中导航,从中抽取出数据,然后再手工调用showPopup()方法,!以xml数据为中心的应用中可以使用这些数据!
xml的一个很大优点是有助于对信息进行结构话!。,这个脚本中用parseXMl()将函数中将他们转换成一段HTML的无语立标!
现在对xml数据的传递是否有了更深一步的了解了呢!
有疑问,随时解答!
相关文章推荐
- 使用原生Ajax处理HTML,XML,JSON数据
- Ajax客户端与伺服端之间,使用XML作为数据传送
- 使用 XMLHttpRequest 实现 Ajax 二:取回 XML 数据
- ajax xmlhttprequest使用post传参数并向后台获取数据
- Ajax中XML和json两种数据格式的使用和比较
- Ajax 使用XMLHttpRequest对象发送数据和接收处理XML源代码
- 使用 XMLHttpRequest 实现 Ajax 三:取回 Json 数据
- Ajax实例(二)-使用XML传送数据
- jQuery的ajax()检验用户名;通过jQuery的load()/get()/post()方法实现;使用XMLHTTPRequest对象来进行AJAX的异步数据交互
- ajax完成异步的省市联动效果--使用xml接收数据
- 使用ASP.NET AJAX异步调用Web Service和页面中的类方法(10):服务器端和客户端数据类型的自动转换:以XML方式序列化数据、小结
- Ajax 使用XML数据
- HTML5第8次课堂笔记( 模拟form表单提交数据,xml的解析,jQuery的Ajax方法使用, mui的ajax)
- 使用JQuery的Ajax操作html,xml,json数据
- 使用AJAX传XML数据的时候,需要将某些XML字符转义
- JS使用ajax从xml文件动态获取数据显示的方法
- 使用ASP.NET AJAX异步调用Web Service和页面中的类方法(10):服务器端和客户端数据类型的自动转换:以XML方式序列化数据、小结
- Ajax入门(与Java服务器交互)(三)——解析XML数据、使用级联下拉选择框
- 使用jquery中的ajax请求xml页面数据
- Firefox3中使用XMLHttpRequest(Ajax)发送二进制POST数据的简易调试法