第六教案
课题:文档对象模型DOM
目的要求:
⏹理解DOM模型
⏹解析XML文档,生成文档对象
⏹操纵DOM模型的对象、接口、属性、方法、事件
重点难点:
⏹重点:使用DOM API提供的对象和接口对XML进行操作,主
要包括查询、添加、修改、删除接点等操作
⏹难点:如何使用API
教学过程:
如图。
作业布置:
一、文档对象模型(DOM)概述
下面,我们将说明如何通过程序访问XML文档。
其中一种方法是通过文档对象模型(Document Object Model,DOM)。
在本章中,我们将介绍文档对象模型,并借助几个程序实例解释它的功能。
1.1什么是文档对象模型(DOM)?
文档对象模型一词在Web浏览器领域并不陌生。
窗口、文档和历史等对象都被认为是浏览器对象模型的一部分。
然而,任何做过Web开发的人都知道各种浏览器实现这些对象的方式不尽相同。
对于如何通过Web访问和操作文档结构这个问题,为了创建更加标准化的方法,W3C提出了目前的W3C DOM规范。
W3C DOM是一种独立于语言和平台的定义,即:它定义了构成DOM的不同对象的定义,却没有提供特定的实现,实际上,它能够用任何编程语言实现。
例如,为了通过DOM访问传统的数据存储,可以将DOM实现为传统数据访问功能之外的一层包装。
利用DOM中的对象,开发人员可以对文档进行读取、搜索、修改、添加和删除等操作。
DOM为文档导航以及操作HTML和XML文档的内容和结构提供了标准函数。
1.2常见的文档模型
常见的文档模型有三类:
线性模型、树型模型、对象模型。
DOM模型是对象模型。
1.3DOM的工作原理及DOM模型结构
当使用DOM对XML文本文件进行操作时,它首先要解析文件,将文件分解为
独立的元素、属性和注释等。
然后,它以节点树的形式(在内存中)创建XML文件的表示。
此后,开发人员可以通过节点树访问文档的内容,并根据需要修改文档。
事实上, DOM执行了更进一步的操作,它将文档中的每个项目看作节点——元素、属性、注释、处理指令,甚至构成属性的文本。
见下面的例子:
通过解析器解析后形成下面结构:
文本
author
books
book
book
author title title
至尊宝倘若时光倒流白晶晶月光宝盒实用大全文档(根节点)
根元素节
点
元
素
下面是另一个例子图:
工作原理可用下图表示:
二、生成XML文档对象模型
见下列代码,它将一个XML 文档装载到内存中,并构建成一棵对象树:
W3C 只是给出了
DOM 的规范,并没有规定其必须在什么平台上实现,因此,具体的应用可根据具体的情况选择不同的DOM 实现库,本书以微软的MSXML 为平台进行讲解。
MSXML 并非完全遵照标准,它提供了一些扩展。
第一行代码生成一个xmlDoc 文档对象,它包含文档中的所有对象;第二句表示文档装载方式是同步还是异步,同步表示在装载文档的同时就进行后续处理,异步表示必须等整个文档装载完成后再进行后续处理;第三局表示开始装载文档。
代码执行完后在xmlDoc 中包含了XML 文档的对象树。
三、DOM 对象
本节讲述DOM中对象和接口如何使用其属性、方法来操纵XML文档。
主要的DOM对象或接口见下表:
下面通过示例对这些对象进行详细说明:
2.1 XML文档对象——DOMDocument对象
DOMDocument对象是XML DOM的基础,通过它可以浏览、查询和修改XML文档的内容和结构。
DOMDocument表示了树的顶层节点,它实现了DOM文档的所有的基本的方法并提供了额外的成员函数来支持XSLT。
它创建了一个文档对象,所有其他的对象都可以基于这个文档对象创建。
DOMDocument对象实现了IXMLDOMDocument接口。
DOMDocument的常用属性如下表:
见下例:
xml文档:
代码:(JavaScript)
DOMDocument的常用方法如下表:
var objXMLDOMNode = oXMLDOMNode.appendChild(newChild)
createNode的语法如下:
var objXMLDOMNode =
oXMLDOMDocument.createNode(Type,name,namespaceURI),其中type是节点类型(1代表元素节点、2代表属性节点、3代表文本节点,其余可查MSXML帮助文档),name是节点名称,namespaceURI指明该节点属于什么名称空间。
见下例:
2.2 XML文档节点——IXMLDOMNode对象
IXMLDOMNode是DOM的基本对象,所有节点都可以看作是一个IXMLDOMNode对象,所有其它DOM对象接口都是继承它的属性和方法。
常用属性见下表:
见下例:
常见方法如下:
2.3 XML文档节点集合——IXMLDOMNodeList对象
IXMLDOMNodeList对象是IXMLDOMNode的有序集合,其中的元素可以通过index访问,起始值是0。
常见属性有:length——返回集合中的节点数
常见的方法有:nextNode、item
见下例:
2.4 XML文档解析错误——IXMLDOMParseError对象
IXMLDOMParseError对象用来返回在解析过程中所出现的错误的详细信息,包括错误号、行号、字符位置和文本描述。
常见属性见下表:
见下例:
2.5 XML文档节点属性——IXMLDOMAttribute对象
IXMLDOMAttribute对象表示相关元素的属性。
常见属性如下:
见下面的例子
2.6 XML文档类型——IXMLDOMDocumentType对象
该接口获得XML文档中关于文档类型定义的信息,它的所有属性都是只读的。
IXMLDOMDocument接口的doctype属性负责识别文件的IXMLDOMDocumentType接口。
这个接口继承了IXMLDOMNode接口,所以它拥有IXMLDOMNode 接口的全部属性与方法。
另外IXMLDOMDocumentType接口也实现了下面的扩展属性:
见下列代码:
XML文档和DTD文档如下:
四、本章总结
●文档模型分为:线性模型、树型模型和对象模型三种,线性模型适合
于静态文本,树型模型适合于动态文本,对象模型在树型模型的基础上加入对象模型特有的属性、事件和方法等。
●DOM把文档作为一个对象,通过编程方式来改变和查询文档。
●DOM主要的对象接口有如下几种:
IXMLDOMDocument/DOMDocument
IXMLDOMNode
IXMLDOMNodeList
IXMLDOMParseError
IXMLDOMAttribute
IXMLDOMDocumentType
第七教案
课题:DOM操作
目的要求:
⏹创建并加载XML文档
⏹通过DOM访问XML文档的元素和属性
⏹通过DOM修改XML文档的内容和结构
⏹学会使用常用的DOM对象
重点难点:
⏹重点:常用DOM对象
⏹难点:DOM对象操作
教学过程:
指导(90分钟),练习(30分钟)
作业布置:。