查看: 7734|回复: 0
打印 上一主题 下一主题

使用XMLHttpRequest处理XML

[复制链接]
跳转到指定楼层
1#
发表于 2007-10-4 11:08:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
台州网址导航
XMLHttpRequest对象提供的不仅仅是后台数据处理,它能够通过XML DOM提供处理XML的所有支持。通过XMLHttpRequest对象可以充分地处理XML。

上一周我见到一个例子,这一简单的例子演示了通过XMLHttpRequest object的一个基础元素,提供动态用户界面。由此,通过实时HTTP处理XML数据,我对这一概念进行拓展。

处理XML

虽然我看到的例子通过responseText方法只显示了文本文件的结果,但XMLHttpRequest可以很容易地处理XML文件。这一对象的responseText属性提供了访问XML很方便的途径,它返回HTTP的主体,以及一个XML Document Object Model (DOM)。

以下简单例子演示了XMLHttpRequest的用法。我们先看看一些XML例子,例子中使用到以上的XML,其通过使用两个children节点的根节点集中了公司联系方式。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>


<response>


<telephone>502-000-0000</telephone>


<companyname>TechRepublic.com</companyname>


</response>

XML DOM

W3C已经指定了一个XML的标准文档对象模型。DOM是用于HTML和XML文档的程序开发接口,它能够让开发者访问和操作一个文档。开发者可以使用DOM建立和浏览文档。我们已经在前面的例子中使用到getElementsByTagName和firstChild,然而还有很多可利用的方法和属性,如下表所示:

Basename:返回一个节点的名称。
childNodes:返回包含选择节点的所有子节点的列表。
lastChild:返回当前节点的最后子节点。
nextSibling:返回当前节点之后的一个节点。如果二者是同一父母,则它们为同胞关系。
parentNode:返回一个节点的父母节点。如果是根节点,则返回Null。
text:返回一个节点及其子节点的文本内容。
xml:返回一个节点及其子节点的XML内容。
hasChildNodes:对一个节点是否包含子节点,返回相应的true或false。
nextNode:返回一个集合的下一节点。
previousNode:返回一个集合的前一节点。
selectNodes:返回与特定模式匹配的包含所有节点的一个NodeList对象。
selectSingleNode:返回与特定模式匹配的第一个子节点的节点对象。
例如,在第一例子中,我们使用selectSingleNode方法返回数据。Listing B中的Web页使用到了这方法。

Listing B

<html><head><title>TechRepublic.com Example</title>


<script type="text/javascript" language="JavaScript">


var obj;


function getData() {


document.body.style.cursor='wait';


if (window.XMLHttpRequest) {


obj = new XMLHttpRequest();


} else if (window.ActiveXObject) {


obj = new ActiveXObject("Microsoft.XMLHTTP");


}


var goUrl = "http://localhost/companies.xml";


obj.onreadystatechange = xmlReady;


obj.open("GET",goUrl, false );


obj.send();


document.body.style.cursor='auto';


}


function xmlReady() {


if (obj.readyState == 4) {


if (obj.status == 200) {


var xmldoc = obj.responseXML;


var node1 = xmldoc.selectSingleNode('response/telephone');


var node2 = xmldoc.selectSingleNode('response/companyname');


document.forms[0].telephone.value = node1.firstChild.data;


document.forms[0].cname.value = node2.firstChild.data;


} }


</script></head><body>


<form id="frmTest">


Company: <input type="text" name="cname" /><br />

Telephone: <input type="text" name="telephone" /><br />


<input type="button" value="Click" onclick="getData();" />


</form></body></html>

XML DOM使得XML数据处理变得很简单。你可以很容易地使用for循环,以及XML DOM方法和属性快速浏览一个XML文档的元素。


在网络中,有很多可利用的数据源提供给XML格式的数据,比如Amazon和Google。你可以使用XMLHttpRequest对象在一个Web页或程序中集成这些服务。

浏览器中的XML

虽然XMLHttpRequest对象是AJAX开发的关键,但它也可将XML导入到浏览器。通过使用不同的方法和属性,这一对象可以很容易地操作包含在XML文档中的数据。在以后的操作中,你可以使用XSL表单方式来显示数据。

本文作者Tony Patton的职业生涯始于应用程序开发员,并已经获得了Java、VB、Lotus和XML的认证,知识面非常宽广。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖
台州维博网络(www.tzweb.com)专门运用PHP+MYSQL/ASP.NET+MSSQL技术开发网站门户平台系统等。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

网站推广
关于我们
  • 台州朗动科技(Tzweb.com)拥有多年开发网站平台系统门户手机客户端等业务的成功经验。主要从事:政企网站,系统平台,微信公众号,各类小程序,手机APP客户端,浙里办微应用,浙政钉微应用、主机域名、虚拟空间、后期维护等服务,满足不同企业公司的需求,是台州地区领先的网络技术服务商!

Hi,扫描关注我

Copyright © 2005-2026 站长论坛 All rights reserved

Powered by 站长论坛 with TZWEB Update Techonolgy Support

快速回复 返回顶部 返回列表