使用DOM访问XML文档

上传人:仙*** 文档编号:243908713 上传时间:2024-10-01 格式:PPT 页数:47 大小:245KB
返回 下载 相关 举报
使用DOM访问XML文档_第1页
第1页 / 共47页
使用DOM访问XML文档_第2页
第2页 / 共47页
使用DOM访问XML文档_第3页
第3页 / 共47页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,Page,*,点击此处结束放映,第,7,章 使用,DOM,访问,XML,文档,7.1 DOM,概述,7.1,DOM,对象架构,7.2,DOM,客户端编程访问,XML,7.3,DOM,服务器端编程访问,XML,7.4,7.1 DOM,概述,7.1.1 DOM,简介,DOM,的中文含义为文档对象模型,由一组代表,HTML,文档或者,XML,文档中不同组成部分的程序对象组成,这些对象提供了各自的属性和方法,使得应用程序开发者能够通过编写脚本程序来操纵和显示文档中相应的组件。,使用,DOM,技术访问,XML,文档,具有强大的功能和灵活性,不仅可用来编写访问本地,XML,文档的程序,还可用来编写访问服务器端,XML,文档的应用程序。,可以把,DOM,看作是一种,ActiveX,对象,它绑定封装了若干个对,XML,文档进行访问的,API,,应用程序开发者能够使用脚本语言来调用,DOM,对象的属性与方法,达到访问、操作,XML,文档各个组成部分的目的。,DOM,以树状的层次节点来储存,XML,文档中的所有数据,可以使用,DOM,节点树来访问任何形式的,XML,文档,并且可以使用,DOM,提供的编程接口来显示和操纵,XML,文档中的任何组件,包括元素、属性、处理指令、注释及实体等。,7.1.2 DOM,与,SAX,除了,DOM,方式之外,,XML,技术还提供了,SAX,方式来读取和处理,XML,文档的数据。,SAX,的英文名称为,Simple API for XML,,即应用于,XML,的简单,API,。,DOM,的运作方式是将整个文档读入内存,并根据文档中定义的元素及其属性构建一个树型结构用来描述该文档。,DOM,方式提供了直接指向,XML,文档各组成部分的,API,,给程序设计带来了方便。但是,由于,DOM,方式首先将整个文档载入内存,然后生成一颗相应的节点对象树,当,XML,文档的数据量比较大或文档结构比较复杂时,将要占据大量的内存空间,其解析过程也会需要比较长的时间。,SAX,方式针对处理大型,XML,文档和高吞吐量的情况作了优化,它会遍历整个文档,并逐一访问文档中的每一项内容。,SAX,方式的优点是:无论,XML,文档有多大,都只将下一项内容载入内存中。因为忽略了为文档内容创建一颗对象树的过程,而能更快地执行。,与,DOM,方式相比,,SAX,方式对,XML,文档的处理缺乏一定的灵活性和规范性,并且,SAX,应用程序一般都比较长,所以本章将只介绍通过,DOM,方式对,XML,文档的访问与处理。,7.1.3 DOM,结构树,当,IE,浏览器内含的,XML,解析器处理被载入的,XML,文档并根据文档的逻辑结构生成一棵对应的,DOM,树时,它会为,XML,文档中的每一个基本组件建立一个树中的对应节点。这些基本组件包括元素、属性、注释、实体与处理指令等,,DOM,会使用不同类型的节点来代表不同类型的,XML,组件。表,7-1,列出了,DOM,节点的各种类型及简短说明。,表,7-1 DOM,节点的各种类型,节点类型,说,明,节点名称,Document,文档根节点(代表整个,XML,文档),#document,Element,元素节点,元素的实际名称,Attribute,属性节点,属性的实际名称,Text,属于元素或属性的文本内容,#Text,Processing Instruction,处理指令节点,处理指令的实际名称,(例如,xml,),Comment,注释节点,#comment,CDATA Section,CDATA,区段,#,cdata,-section,DocumentType,代表,的节点,DTD,声明中的文档类型名称,Entity,DTD,中的,声明,实体名称(例如,image,),Notation,DTD,中的符号声明,符号名称(例如,BMP,),对于书中的,CustomerDom.xml,范例文档,将生成如下图所示的,DOM,结构树。,7.2 DOM,对象架构,7.2.1 DOM,对象概述,IE,浏览器支持的,XML DOM,为应用程序操纵和处理,XML,文档提供了各种,DOM,对象,表,7-2,列出了各种,XML DOM,对象及其对应节点的简短说明。,表,7-2,各种,XML DOM,对象,对,象,说,明,XMLDOMDocument,表示,DOM,树的最顶层节点,即根节点,XMLDOMNode,表示,DOM,树中除根节点之外的某一个节点,XMLDOMNodeList,表示某个父节点之下的一系列兄弟节点的集合,XMLDOMParseError,返回错误信息,包括错误编号、出错位置等一些相应的描述信息,XMLDOMAttribute,代表一个属性节点,XMLDOMDocumentType,代表文档类型描述的相关信息,每一个不同的节点对象都有其特定的属性和方法,但也有许多共同的属性,表,7-3,列出了各种类型节点对象共有的一组属性。,表,7-3,所有类型节点共有属性,属,性,说,明,attributes,返回包含该节点所有属性的,NamedNodeMap,集合(只读),childNodes,返回包含该节点所有非属性子节点的,NodeList,集合(只读),dataType,返回该节点数据类型(可读写),firstChild,该节点的第一个非属性的子节点(只读),lastChild,该节点的最后一个非属性子节点(只读),nextSibling,返回位于同一层级的下一个节点(只读),nodeName,返回该节点的名称(只读),nodeType,返回表示该节点类型的数值码(只读),nodeTypeString,返回表示该节点类型的字符串(小写字母撰写,只读),nodeTypeValue,返回该节点类型的值(可读写),nodeValue,返回该节点的值(如果不含值则为,null,)(可读写),ownerDocument,返回包含本节点的,Document,根节点(只读),parentNode,返回该节点的父节点(不适用于,Attribute,节点,只读),previousSibling,与本节点位于同一层级的前一个节点(只读),text,该节点与其后裔节点的全部文字内容(可读写),xml,该节点与其后裔节点的全部,XML,内容(只读),除了共同具有的属性之外,各种类型的节点对象都提供了特有的属性和方法,来处理该节点类型所代表的特殊,XML,文档组件。,通过,XML DOM,对象的层次架构及其相关的属性,程序员可以从当前节点出发访问各个节点的信息。,7.2.2 Document,对象,Document,对象代表,XML DOM,树的根节点,同时代表了整个,XML,文档。该对象提供了对整个文档或文档中的数据进行访问和操作的许多属性和方法。,由于其他节点都是,Document,节点的子节点,所以通过,Document,对象可以访问文档中的各种节点,包括处理指令、注释、文档类型声明及根元素节点等。,表,7-4,列出了,Document,对象的一些特有属性。,表,7-4 Document,对象的特有属性,属,性,说,明,async,默认值为,TRUE,,表示同步载入文档;若为,FALSE,,则为异步载入,docType,返回,DTD,的,DocumentType,节点,documentElement,返回文档的根元素节点,nameSpaceURL,返回命名空间的,URL,值,onDataAvailable,若此属性指定为撰写的函数名称,当,XML,数据可取得时将调用该函数,onReadyStateChange,若将此属性指定为撰写的函数名,当,document,的,readyState,属性改变时,将调用该函数,parsed,若所有子节点已被解析,返回,TRUE,,否则返回,FALSE,parseError,返回处理,XML,文件时发生的任何错误信息,readyState,载入和处理,XML,文档的当前状态。,0,代表,uninitialized,、,1,代表,loading,、,2,代表,loaded,、,3,代表,interactive,、,4,代表,completed,url,载入的,XML,文档的,URL,值,表,7-5,列出了,Document,对象的常用方法及其说明。,表,7-5 Document,对象的常用方法,方,法,说,明,abort,终止,XML,文档的异步加载,appendChild(newChild,),为当前节点增加一个子节点,cloneNode(deep,),复制当前节点,若,deep,为,TRUE,,连同所有子节点一起复制;若,deep,为,FALSE,,仅复制当前节点本身,createAttribute(name,),创建一个属性,createCDATASection(data,),创建一个,CDATA,区段,createComment(data,),创建一个注释,createElement(name,),创建一个元素,createEntityReference(name,),创建一个实体参考,createNode,(,type,name,namespaceURL,),创建一个指定类型和名称的节点,createProcessionInstruction,(,target,data,),创建一个处理指令,createTextNode(text,),创建一个指定内容的文本节点,getElementsByTagName(name,),返回文档中拥有特定类型名称的所有元素列表。如果参数为“,*,”将返回所有元素,hasChildNodes,若当前节点有子节点,返回,TRUE,;否则返回,FALSE,insertBefore(newNode,refNode,),将一个,newNode,插入到,refNode,之前,load(URL,),载入并解析由,URL,指定的文档,loadXML(stringDoc,),载入并解析由,stringDoc,指定的,XML,文档,nodeFromID,(id-value),返回,ID,类型属性值为,id-value,一个节点,removeChild(Child,),删除指定的子节点,replaceChild(newChild,oldChild,),用,newChild,子节点替代,oldChild,子节点,save(stringDoc,),将,DOM,树数据存入由,stringDoc,指定的,XML,文档,selectNodes(pattern,),取得符合指定类型的所有节点,selectSingleNodes(pattern,),取得符合指定类型的第一个节点,transformNode(stylesheetObj,),用含有指定的样式表对象实例来转换,XML,文档,将转换结果以字符串形式返回,transformNodeToObject,(,stylesheetObj,outObj,),用含有指定的样式表对象实例来转换,XML,文档,并将转换结果写入到,outObj,对象,7.2.3 Node,对象,在,XML DOM,树中,除了根节点之外,每一个节点都是一个,Node,对象。所以,Node,对象可以对应于,XML,文档中的任意一个元素、属性、处理指令或注释等。,Node,对象所具有的属性与所有对象共有的属性基本相同,利用,Node,对象具有的一些方法则可操纵当前节点及其子节点。,表,7-6 Node,对象的常用方法,方,法,说,明,appendChild(newChild,),为当前节点增加一个子节点,cloneNode(deep,),复制当前节点,若,deep,为,TRUE,,连同所有子节点一起复制;若,deep,为,FALSE,,则仅复制当前节点本身,hasChildNodes,若当前节点有子节点返回,TRUE,,否则返回,FALSE,表,7-6,列出了,Node,对象的常用方法及其说明。,i
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!