資源描述:
《第6章文檔對象模型(DOM》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、第6章文檔對象模型(DOM)DOM的全稱是DocumentObjectModel,也即文檔對象模型。它是W3C制定的一套標(biāo)準(zhǔn)接口規(guī)范,是給HTML與XML文檔使用的一整套API接口,并且這套接口與編程語言無關(guān)。在前面幾個(gè)章節(jié)中,本書已經(jīng)講解了有關(guān)XML的基本知識。讀者應(yīng)該了解,XML是一種可擴(kuò)展性標(biāo)識語言,能夠讓程序員自己創(chuàng)造標(biāo)識,標(biāo)識所想表示的內(nèi)容。簡單的說,DOM的作用就是讓程序員可以隨時(shí)任意的操作和處理XML文檔中的數(shù)據(jù)。6.1DOM的組成DOM作為W3C的標(biāo)準(zhǔn)接口規(guī)范,目前,主要由三部分組成,包括:核心部分(core)、HT
2、ML相關(guān)接口部分和XML相關(guān)接口部分。核心部分是結(jié)構(gòu)化文檔比較底層對象的集合,一般包括文檔、元素、文本、屬性和注釋等。這一部分所定義的對象已經(jīng)完全可以表達(dá)出任何HTML和XML文檔中的數(shù)據(jù)了。HTML接口和XML接口兩部分則是專為操作具體的HTML文檔和XML文檔所提供的各種接口,通過使用這些接口,使得對這兩類文件的操作更加方便。6.1.1一棵簡單的DOM樹XML文檔對象模型中最重要的三個(gè)概念是:一、所有XML內(nèi)容(元素、屬性、文本內(nèi)容等)都被視為節(jié)點(diǎn);二、在節(jié)點(diǎn)之間可以隨機(jī)“移動”,從一個(gè)節(jié)點(diǎn)可以訪問鄰近的其他節(jié)點(diǎn);三、所有這些節(jié)
3、點(diǎn)在內(nèi)存中被構(gòu)建成一棵樹結(jié)構(gòu)。6.1.2DOM的核心部分XML文檔中的所有一切都被視為節(jié)點(diǎn)(Node)。節(jié)點(diǎn)是DOM對XML數(shù)據(jù)的抽象。在XML文檔中,一個(gè)具體的XML節(jié)點(diǎn)與面向?qū)ο缶幊陶Z言中的一個(gè)對象對應(yīng)。每個(gè)對象所屬的類(Class),都實(shí)現(xiàn)相應(yīng)的XMLDOM節(jié)點(diǎn)接口(Interface)。節(jié)點(diǎn)接口之間有繼承關(guān)系,如元素對象首先實(shí)現(xiàn)元素接口,元素接口則從節(jié)點(diǎn)接口繼承派生而來。元素接口有自己的特性,但又具有一般節(jié)點(diǎn)的共性。下面詳細(xì)的介紹各種節(jié)點(diǎn)的類型。1.文檔2.元素3.屬性b4.文本5.注釋6.CDATA6.1.3DOM接口規(guī)范
4、中的四個(gè)基本接口在DOM接口規(guī)范中,有四個(gè)基本的接口:Document,Node,NodeList以及NamedNodeMap。1.Document接口2.Node接口3.NodeList接口4.NamedNodeMap接口6.2DOM的接口DOM是W3C制定的接口規(guī)范,通過各軟件廠商以軟件包的方式實(shí)現(xiàn)DOM接口,才提供真正能用的功能。在本節(jié)中,首先討論為什么要使用DOM接口;接著,討論DOM的接口特性,以及如何實(shí)現(xiàn)DOM的接口;最后詳細(xì)講解微軟的MSXML文檔對象模型的實(shí)現(xiàn)。6.2.1為什么要使用DOM接口XML文檔是一個(gè)文本文件
5、,要對該文檔文件進(jìn)行操作,首先必須書寫一個(gè)能夠識別XML文檔信息的文本文件閱讀器,也就是通常所說的XML解析器,由它來幫助解釋XML文檔并提取其中的內(nèi)容。這是一項(xiàng)非常耗時(shí)耗精力的工作,因?yàn)槌绦騿T不得不面對復(fù)雜的XML語法,來編寫處理這些語法的XML解析器;況且更加糟糕的是,如果需要在不同的應(yīng)用程序或開發(fā)環(huán)境中訪問XML文檔中的數(shù)據(jù),這樣的分析器代碼就要被重寫多次。6.2.2接口與實(shí)現(xiàn)接口建立了對象或者類和應(yīng)用程序之間的關(guān)系,簡單的說,接口提供了一些屬性和方法,應(yīng)用程序開發(fā)者可以調(diào)用這些屬性和方法來構(gòu)件自己的應(yīng)用程序。6.2.3MSX
6、ML文檔對象模型的接口一覽及重要接口介紹1.IXMLDOMDocument接口、XMLDocument類和FreeThreadedDOMDocument類(文檔)2.IXMLDOMNamedNodeMap接口3.IXMLDOMNode接口4.IXMLDOMNodeList接口5.IXMLDOMElement接口6.IXMLDOMAttribute接口7.IXMLDOMDocumentType接口8.IXMLDOMEntity接口9.IXMLDOMNotation接口10.IXMLDOMNotationImplementation接口
7、6.3DOM的應(yīng)用通過上面兩個(gè)小節(jié)的學(xué)習(xí),對DOM的基本概念,DOM的基本接口,以及對微軟的文檔對象模型有了基本的了解。在這個(gè)小節(jié)里,將利用前面學(xué)到的知識,來具體的講解DOM的應(yīng)用,也就是說,DOM是用來處理XML文檔的,那么具體應(yīng)該如何用DOM來操作XML文檔呢,包括創(chuàng)建XML文檔、驗(yàn)證XML文檔、加載XML文檔、處理文檔的節(jié)點(diǎn)、保存文檔等等,在這個(gè)小節(jié)里,將詳細(xì)的講解這些內(nèi)容。6.3.1添加DOM處理引用在應(yīng)用DOM之前,應(yīng)該先將實(shí)現(xiàn)DOM的動態(tài)庫加載到工程中。1.在VB6.0中,加載MSXML4.0動態(tài)庫6.3.1添加DOM處
8、理引用2.在.NET2003中,加載MSXML4.0動態(tài)庫6.3.2加載XML文檔在對XML文檔處理之前,必須利用DOM將XML文檔加載到內(nèi)存,這樣就能對該文檔進(jìn)行處理。XML文檔的來源有很多,即可以是本地硬盤上的一個(gè)文件,也可以是從