Ajax编程技术第五章XML要点_第1页
Ajax编程技术第五章XML要点_第2页
Ajax编程技术第五章XML要点_第3页
Ajax编程技术第五章XML要点_第4页
Ajax编程技术第五章XML要点_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Ajax编程技术的第五章,XML精要,5-2,5.1 XML基础,在使用XMLHttpRequest对象向服务器发出请求后,服务器返回的数据有两种格式:文本格式:它是一个可以很容易添加到页面中的字符,但是,就数据交换而言,文本格式非常有限。字符之间的元素和数据类型没有区别。XML格式:它是一种标记语言,使用用户定义的标签以特定的方式组织数据。当浏览器从响应Ajax请求的服务器接收到XML文档时,我们需要一种提取和显示XML数据的方法。JavaScript可以使用节点、节点属性和DOM方法从XML文档中检索数据。一旦提取了XML数据,就可以使用CSS或XSLT将其显示在页面上。5-3,5.1基于

2、可扩展标记语言,可扩展标记语言特性允许数据分类;允许创建数据格式;将数据输出到各个地方;它不是一种私有语言,也不限于特定的平台或设备。5-4,5.1 XML基础,创建标记让我们构建一个XML文档。其中,我们将创建一组自定义标记:CS 115 ComputerScience 3 ADAMS Programming,包含所有其他元素的根元素,Classes的子元素,元素的开始标记,元素的结束标记,Computer Science,元素中包含的内容,5-5,XML语法XML文档从XML声明开始:XML有一个包含所有其他元素的根元素,如上例所示;XML标记必须有一个开始标记和一个结束标记,中间有元素内

3、容:编程空元素既没有元素内容也没有结束标记,但是元素开始标记用“/”密封;标记嵌套必须正确,不能交叉嵌套;标签中的属性值必须用引号括起来。5.1 XML基础,5-6,5.1 XML基础。使用XML进行数据交换的主要优点是,XML文档可以包含关于文档中数据的格式和类型的详细信息。验证XML文档是否被正确接收是很方便的。5-7,5.1 XML基础,示例:从服务器请求XML数据以创建主页,index.htm :请求XML函数getdoc () if(窗口. xmlhttprequest)请求=new xmlhttprequest();否则,如果(窗口。活动对象)请求=新活动对象(微软。XMLHTTP

4、);if(request . OVERRIDE MeteType)request . OVERRIDE MeteType(text/XML);如果(请求)请求.打开(GET,classes.xml,true);request . onreadystatechange=function()if(request . readystate=4,Requesting XML var MyDoc=document . GetElementbyId(ReqDoc);myDoc.onclick=getDoc,5-8,5.1 XML基础,创建服务器端数据文件classes.xml,并将其保存为utf-8格式:

5、CS 115 Computer Science 3 ADAMS Programming CS 205 Computer Science 3 Dykes JAVAScript CS 255 Computer Science 3 Brunner C Programming,5-9,5.1 XML basis,操作:在右图所示的界面中,单击“发出请求”按钮,将出现一个警告框:5-10,5.1 XML Basis。如果在index.htm用红色字符显示的代码如下:那么程序弹出的警告框就是右图所示的警告框。在本章的后面,我们将介绍如何使用JavaScript从服务器返回的XML文档中提取数据。5-11,

6、5.2使用JavaScript提取XML数据,一旦从服务器获得了XML文档,下一步就是使用JavaScript从文档中提取XML数据。我们可以使用节点、节点属性或DOM方法来获得它。除了使用XML元素的值,您还可以提取XML属性的值。5-12,5.2使用JavaScript提取XML数据,使用节点JavaScript包括内置的节点属性,可用于访问XML文档中的节点。您还可以使用文档元素属性来访问XML文档的根元素。其他节点属性中包含的族如下:firstChild:的第一个子节点;lastChild:的最后一个子节点;下一个兄弟节点;前一个同级节点;子节点3360子节点数组节点名称:节点名称节点

7、值:节点值节点类型:节点类型,有关类型值,请参见下表:5-13,5.2使用JavaScript提取XML数据,5-14,5.2使用JavaScript提取XML数据,示例1,要访问类中的根元素名称。然后,单击按钮后,屏幕上会弹出以下警告框,显示类的名称。xml根元素:classes:5,5-15,5.2使用JavaScript提取XML数据,示例2,您也可以使用获得的变量xmlDocument来获得XMLHttpRequest对象的requestXML属性:var根节点=XMl document . document element;您可以根据族关系访问文档中最后一个类元素的文本节点值。/即类

8、,类的最后一个子元素,var title node=class node . last child;/class元素的最后一个子元素是title var title text=title节点。第一个孩子;/获取title的第一个子元素,即它的文本节点var title value=title text . node value;/获取标题的文本值,并用上面的5行代码替换index.htm的红队。点击按钮后,程序弹出如下警告框:5-16,5.2使用JavaScript提取XML数据。示例3,如果要访问上一示例中第一个类元素的文本节点值,可以将上一页的绿色代码更改为以下代码:var class n

9、ode=root node . fritschild;5-17,5.2使用JavaScript提取XML数据,这些程序在IE下运行良好,但是在Mozilla浏览器中会有错误。原因是Mozilla的浏览器将XML文档中的空格视为文本节点。然后,当基于Mozilla浏览器中的class元素访问firstChild时,它会访问空白文本节点,而不是第一个class元素。修改方法是利用族关系跳过这些空间节点。上面的红色团队var classnode=rootnode。fristchild修改如下:var classnode=rootnode。长子。下一个兄弟姐妹;当然,最好的方法是删除XML中的所有空格

10、。5-18,5.2使用JavaScript提取XML数据并根据名称访问XML元素除了使用节点属性访问节点信息外,还可以使用getElementsByTagName方法根据名称从XML文档中提取特定元素。例如,classes.xml文档中有多个标题元素,可以用作:var title node=XML document . getelementsbyname(title);它们都被提取出来,形成一个标题节点数组。然后提取数组中的某个元素:var firstTitle=titleNode0/获取第一个标题元素第一个标题值=第一个标题。第一个孩子。节点值;/获取该元素的文本节点值,5-19,5.2使用

11、爪哇岛描述语言提取XML数据,如果要显示该文本节点值,可在页面上添加带有编号值的div标记,然后在此div中显示出来:var MyEL=文档。create ElEMENT(p);var newText=第一个课程是:“标题值”.var MyTx=文档。创建文本节点(新文本);迈尔。append child(MyTx);var课程=document.getElementsByTagName(标题);课程。附录儿童(MYel);完整的index.htm程序如下页所示:5-20,5.2使用爪哇岛描述语言提取XML数据,请求可扩展标记语言函数getDoc()如果(窗口XMLHttpRequest)请求

12、=新的XMlhttprequest();否则,如果(窗口。活动对象(请求=新活动对象(微软. XMLHTTP);如果(请求。OVERRIDE MeteType)请求。覆盖气象类型(文本/可扩展标记语言);如果(请求(请求。打开(GET,classes.xml,true);请求。onreadystatechange=function()if(请求。readystate=4,var MyEL=文档。create ElEMENT(p);var newText=第一个课程是:标题值.var MyTx=文档。创建文本节点(新文本);迈尔。append child(MyTx);var课程=document

13、.getElementById(标题);课程。附录儿童(MYel);请求。发送(null);请求XML变量myDoc=文档。GetElementBYID(RegDoc);myDoc.onclick=getDoc,5-21,5.2使用爪哇岛描述语言提取XML数据同学们。XML :CS115 ComputeR Science 3 Adams编程CS205 ComputeR Science 3 Dykes JAVAScript CS255 ComputeR Science 3 Brunner C程序设计,5-22,5.2使用爪哇岛描述语言提取XML数据,程序运行如下左图;点击按钮后,显示出如下右图示

14、的信息:5-23,5.2使用爪哇岛描述语言提取XML数据,访问属性值还可以使用爪哇岛描述语言提取XML文档中的属性节点值。属性节点被包含在元素节点内。因此,需要首先访问你感兴趣的属性元素。例如classes.xml中贷记元素包括一个名位请求的属性,可以使用getElementsByTagName提取信用元素:var creditStatus=xml .Document.getElementsByTagName(学分);然后可使用属性属性访问该属性。因为有多个信用元素,所以信用状态变量包含一个数组。我们这样访问文档中第三个信用元素的属性值:var CreditAttr=CreditStatus 2。属性;getNamedItem方法允许使用属性获取请求属性值:var RegAttr=CreditAttr。GetNameDitem(请求);最后使用节点值获取请求属性值:var reqVal=reqAttr.nodeValue,5-24,5.2使用爪哇岛描述语言提取XML数据,示例,利用XMLHttpRequest对象从服务器下载classes.xml文档,然后读出文档中的元素和属性值:检查课程功能getDoc()如果(窗口XMLHttpRequest)请求=新的XMlhttprequest();否则,如果(窗口。活动对象(请求=新活动对象(微软. XM

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论