2007-10-02

使用XMLHttpRequest处理XML

来源: 开发者在线 作者:Tony Patton 评论 0 条
 

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();
共2页: 上一页 1 [2] 下一页

(本文仅表明作者个人观点,不代表本站及其管理员立场.) 推荐 收藏 投稿 打印 返回 关闭
上一篇:初学者:PHP语法学习笔记  
下一篇:mashup使Web呈现新外观
    评论加载中…
 推荐文章
     

网站首页  -  网站地图 -   站长论坛  -  网站投稿  -    -  网站管理
Copyright © 2008 芜湖站长站 All Rights Reserved 皖ICP备07500611号