使用DOM访问XML文档.ppt
《使用DOM访问XML文档.ppt》由会员分享,可在线阅读,更多相关《使用DOM访问XML文档.ppt(47页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第7 7章章 使用使用DOMDOM访问访问XMLXML文档文档7.1 DOM7.1 DOM概述概述 7.1DOMDOM对象架构对象架构7.2 DOMDOM客户端编程访问客户端编程访问XMLXML7.3DOMDOM服务器端编程访问服务器端编程访问XMLXML7.47.1 DOM7.1 DOM概述概述7.1.1 DOM简介简介DOM的中文含义为文档对象模型,由一组代表的中文含义为文档对象模型,由一组代表HTML文文档或者档或者XML文档中不同组成部分的程序对象组成,这些文档中不同组成部分的程序对象组成,这些对象提供了各自的属性和方法,使得应用程序开发者能对象提供了各自的属性和方法,使得应用程序开
2、发者能够通过编写脚本程序来操纵和显示文档中相应的组件。够通过编写脚本程序来操纵和显示文档中相应的组件。使用使用DOM技术访问技术访问XML文档,具有强大的功能和灵活性,文档,具有强大的功能和灵活性,不仅可用来编写访问本地不仅可用来编写访问本地XML文档的程序,还可用来编文档的程序,还可用来编写访问服务器端写访问服务器端XML文档的应用程序。文档的应用程序。可以把可以把DOM看作是一种看作是一种ActiveX对象,它绑定封对象,它绑定封装了若干个对装了若干个对XML文档进行访问的文档进行访问的API,应用程,应用程序开发者能够使用脚本语言来调用序开发者能够使用脚本语言来调用DOM对象的对象的属性
3、与方法,达到访问、操作属性与方法,达到访问、操作XML文档各个组成文档各个组成部分的目的。部分的目的。DOM 以树状的层次节点来储存以树状的层次节点来储存XML文档中的所文档中的所有数据,可以使用有数据,可以使用DOM节点树来访问任何形式节点树来访问任何形式的的XML文档,并且可以使用文档,并且可以使用DOM提供的编程接提供的编程接口来显示和操纵口来显示和操纵XML文档中的任何组件,包括元文档中的任何组件,包括元素、属性、处理指令、注释及实体等。素、属性、处理指令、注释及实体等。7.1.2 DOM与与SAX除了除了DOM方式之外,方式之外,XML技术还提供了技术还提供了SAX方方式来读取和处理
4、式来读取和处理XML文档的数据。文档的数据。SAX的英文名的英文名称为称为Simple API for XML,即应用于,即应用于XML的简单的简单API。DOM的运作方式是将整个文档读入内存,并根的运作方式是将整个文档读入内存,并根据文档中定义的元素及其属性构建一个树型结构据文档中定义的元素及其属性构建一个树型结构用来描述该文档。用来描述该文档。DOM方式提供了直接指向方式提供了直接指向XML文档各组成部分的文档各组成部分的API,给程序设计带来了,给程序设计带来了方便。但是,由于方便。但是,由于DOM方式首先将整个文档载方式首先将整个文档载入内存,然后生成一颗相应的节点对象树,当入内存,然
5、后生成一颗相应的节点对象树,当XML文档的数据量比较大或文档结构比较复杂时,文档的数据量比较大或文档结构比较复杂时,将要占据大量的内存空间,其解析过程也会需要将要占据大量的内存空间,其解析过程也会需要比较长的时间。比较长的时间。SAX方式针对处理大型方式针对处理大型XML文档和高吞吐量的情文档和高吞吐量的情况作了优化,它会遍历整个文档,并逐一访问文况作了优化,它会遍历整个文档,并逐一访问文档中的每一项内容。档中的每一项内容。SAX方式的优点是:无论方式的优点是:无论XML文档有多大,都只将下一项内容载入内存中。文档有多大,都只将下一项内容载入内存中。因为忽略了为文档内容创建一颗对象树的过程,因
6、为忽略了为文档内容创建一颗对象树的过程,而能更快地执行。而能更快地执行。与与DOM方式相比,方式相比,SAX方式对方式对XML文档的处理文档的处理缺乏一定的灵活性和规范性,并且缺乏一定的灵活性和规范性,并且SAX应用程序应用程序一般都比较长,所以本章将只介绍通过一般都比较长,所以本章将只介绍通过DOM方方式对式对XML文档的访问与处理。文档的访问与处理。7.1.3 DOM结构树结构树当当IE浏览器内含的浏览器内含的XML解析器处理被载入解析器处理被载入的的XML文档并根据文档的逻辑结构生成一文档并根据文档的逻辑结构生成一棵对应的棵对应的DOM树时,它会为树时,它会为XML文档中文档中的每一个基
7、本组件建立一个树中的对应节的每一个基本组件建立一个树中的对应节点。这些基本组件包括元素、属性、注释、点。这些基本组件包括元素、属性、注释、实体与处理指令等,实体与处理指令等,DOM会使用不同类型会使用不同类型的节点来代表不同类型的的节点来代表不同类型的XML组件。表组件。表7-1列出了列出了DOM节点的各种类型及简短说明。节点的各种类型及简短说明。表表7-1 DOM节节点的各种点的各种类类型型节节点点类类型型说说 明明节节点名称点名称Document文档根文档根节节点(代表整个点(代表整个XML文档)文档)#documentElement元素元素节节点点元素的元素的实际实际名称名称 Attri
8、bute属性属性节节点点属性的属性的实际实际名称名称Text属于元素或属性的文本属于元素或属性的文本内容内容#TextProcessing Instruction 处处理指令理指令节节点点处处理指令的理指令的实际实际名称名称(例如(例如xml)Comment注注释节释节点点#commentCDATA SectionCDATA 区段区段#cdata-sectionDocumentType代表代表 的的节节点点DTD声明中的文声明中的文档档类类型名称型名称EntityDTD 中的中的 声明声明实实体名称(例如体名称(例如image)NotationDTD 中的符号声中的符号声明明符号名称(例如符号
9、名称(例如BMP)对于书中的对于书中的CustomerDom.xml范例文档,将生成如下范例文档,将生成如下图所示的图所示的DOM结构树。结构树。7.2 DOM7.2 DOM对象架构对象架构7.2.1 DOM对象概述对象概述IE浏览器支持的浏览器支持的XML DOM为应用程序操为应用程序操纵和处理纵和处理XML文档提供了各种文档提供了各种DOM对象,对象,表表7-2列出了各种列出了各种XML DOM对象及其对应对象及其对应节点的简短说明。节点的简短说明。表表7-2 各种各种XML DOM对对象象对对 象象说说 明明XMLDOMDocument表示表示DOM树树的最的最顶层节顶层节点,即根点,即
10、根节节点点XMLDOMNode表示表示DOM树树中除根中除根节节点之外的某一个点之外的某一个节节点点XMLDOMNodeList表示某个父表示某个父节节点之下的一系列兄弟点之下的一系列兄弟节节点的集合点的集合XMLDOMParseError返回返回错误错误信息,包括信息,包括错误编错误编号、出号、出错错位置等一些位置等一些相相应应的描述信息的描述信息XMLDOMAttribute代表一个属性代表一个属性节节点点XMLDOMDocumentType代表文档代表文档类类型描述的相关信息型描述的相关信息每一个不同的节点对象都有其特定的属性每一个不同的节点对象都有其特定的属性和方法,但也有许多共同的属
11、性,表和方法,但也有许多共同的属性,表7-3列列出了各种类型节点对象共有的一组属性。出了各种类型节点对象共有的一组属性。表表7-3 所有所有类类型型节节点共有属性点共有属性属属 性性说说 明明attributes返回包含返回包含该节该节点所有属性的点所有属性的NamedNodeMap集合(只集合(只读读)childNodes返回包含返回包含该节该节点所有非属性子点所有非属性子节节点的点的NodeList集合(只集合(只读读)dataType返回返回该节该节点数据点数据类类型(可型(可读读写)写)firstChild该节该节点的第一个非属性的子点的第一个非属性的子节节点(只点(只读读)lastC
12、hild该节该节点的最后一个非属性子点的最后一个非属性子节节点(只点(只读读)nextSibling返回位于同一返回位于同一层级层级的下一个的下一个节节点(只点(只读读)nodeName返回返回该节该节点的名称(只点的名称(只读读)nodeType返回表示返回表示该节该节点点类类型的数型的数值码值码(只(只读读)nodeTypeString返回表示返回表示该节该节点点类类型的字符串(小写字母撰写,只型的字符串(小写字母撰写,只读读)nodeTypeValue返回返回该节该节点点类类型的型的值值(可(可读读写)写)nodeValue返回返回该节该节点的点的值值(如果不含(如果不含值则为值则为nu
13、ll)(可)(可读读写)写)ownerDocument返回包含本返回包含本节节点的点的Document根根节节点(只点(只读读)parentNode返回返回该节该节点的父点的父节节点(不适用于点(不适用于Attribute节节点,只点,只读读)previousSibling与本与本节节点位于同一点位于同一层级层级的前一个的前一个节节点(只点(只读读)text该节该节点与其后裔点与其后裔节节点的全部文字内容(可点的全部文字内容(可读读写)写)xml该节该节点与其后裔点与其后裔节节点的全部点的全部XML 内容(只内容(只读读)除了共同具有的属性之外,各种类型的节除了共同具有的属性之外,各种类型的节
14、点对象都提供了特有的属性和方法,来处点对象都提供了特有的属性和方法,来处理该节点类型所代表的特殊理该节点类型所代表的特殊XML文档组件。文档组件。通过通过XML DOM对象的层次架构及其相关对象的层次架构及其相关的属性,程序员可以从当前节点出发访问的属性,程序员可以从当前节点出发访问各个节点的信息。各个节点的信息。7.2.2 Document对象对象Document对象代表对象代表XML DOM树的根节点,同树的根节点,同时代表了整个时代表了整个XML文档。该对象提供了对整个文文档。该对象提供了对整个文档或文档中的数据进行访问和操作的许多属性和档或文档中的数据进行访问和操作的许多属性和方法。方
15、法。由于其他节点都是由于其他节点都是Document节点的子节点,所节点的子节点,所以通过以通过Document对象可以访问文档中的各种节对象可以访问文档中的各种节点,包括处理指令、注释、文档类型声明及根元点,包括处理指令、注释、文档类型声明及根元素节点等。素节点等。表表7-4列出了列出了Document对象的一些特有属性。对象的一些特有属性。表表7-4 Document 对对象的特有属性象的特有属性属属 性性说说 明明async默默认值为认值为TRUE,表示同步,表示同步载载入文档;若入文档;若为为FALSE,则为则为异步异步载载入入docType返回返回DTD的的DocumentType节
16、节点点documentElement返回文档的根元素返回文档的根元素节节点点nameSpaceURL返回命名空返回命名空间间的的URL值值onDataAvailable若此属性指定若此属性指定为为撰写的函数名称,当撰写的函数名称,当XML 数据可取得数据可取得时时将将调调用用该该函数函数onReadyStateChange若将此属性指定若将此属性指定为为撰写的函数名,当撰写的函数名,当document的的readyState属性改属性改变时变时,将将调调用用该该函数函数parsed 若所有子若所有子节节点已被解析,点已被解析,返回返回TRUE,否,否则则返回返回FALSEparseError
17、返回返回处处理理XML 文件文件时发时发生生的任何的任何错误错误信息信息readyState 载载入和入和处处理理XML文档的文档的当前状当前状态态。0代表代表uninitialized、1代表代表loading、2代表代表loaded、3代表代表 interactive、4代表代表completedurl载载入的入的XML文档的文档的URL值值表表7-5列出了列出了Document对象的常用方法及其说明。对象的常用方法及其说明。表表7-5 Document对对象的常用方法象的常用方法方方 法法说说 明明abort终终止止XML文档的异步加文档的异步加载载appendChild(newChil
18、d)为为当前当前节节点增加一个子点增加一个子节节点点cloneNode(deep)复制当前复制当前节节点,若点,若deep为为TRUE,连连同所同所有子有子节节点一起复制;若点一起复制;若deep为为FALSE,仅仅复制当前复制当前节节点本身点本身createAttribute(name)创创建一个属性建一个属性createCDATASection(data)创创建一个建一个CDATA区段区段createComment(data)创创建一个注建一个注释释createElement(name)创创建一个元素建一个元素createEntityReference(name)创创建一个建一个实实体参考
19、体参考createNode(type,name,namespaceURL)创创建一个指定建一个指定类类型和名称的型和名称的节节点点createProcessionInstruction(target,data)创创建一个建一个处处理指令理指令createTextNode(text)创创建一个指定内容的文本建一个指定内容的文本节节点点getElementsByTagName(name)返回文档中返回文档中拥拥有特定有特定类类型名称的型名称的所有元素列表。如果参数所有元素列表。如果参数为为“*”将将返回所有元素返回所有元素hasChildNodes若当前若当前节节点有子点有子节节点,返回点,返回T
20、RUE;否;否则则返回返回FALSEinsertBefore(newNode,refNode)将一个将一个newNode插入到插入到refNode之前之前load(URL)载载入并解析由入并解析由URL指定的文档指定的文档loadXML(stringDoc)载载入并解析由入并解析由stringDoc指定的指定的XML文档文档nodeFromID(id-value)返回返回ID 类类型属性型属性值为值为id-value一一个个节节点点removeChild(Child)删删除指定的子除指定的子节节点点replaceChild(newChild,oldChild)用用newChild子子节节点替代
21、点替代oldChild子子节节点点save(stringDoc)将将DOM树树数据存入由数据存入由stringDoc指定的指定的XML文档文档selectNodes(pattern)取得符合指定取得符合指定类类型的所有型的所有节节点点selectSingleNodes(pattern)取得符合指定取得符合指定类类型的第一个型的第一个节节点点transformNode(stylesheetObj)用含有指定的用含有指定的样样式表式表对对象象实实例来例来转转换换XML文档,将文档,将转换结转换结果以字符串果以字符串形式返回形式返回transformNodeToObject(stylesheetOb
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 使用 DOM 访问 XML 文档
限制150内