DOM對象模型的四個基本接口對象
在DOM對象模型接口規範中,有四個基本的接口:Document,Node,NodeList以及NamedNodeMap。在這四個基本接口中,Document接口是對文檔進行操做的入口,它是從Node接口繼承過來的。Node接口是其餘大多數接口的父類,象Documet,Element,Attribute,Text,Comment等接口都是從Node接口繼承過來的。NodeList接口是一個節點的集合,它包含了某個節點中的全部子節點。NamedNodeMap接口也是一個節點的集合,經過該接口,能夠創建節點名和節點之間的一一映射關係,從而利用節點名能夠直接訪問特定的節點。下面將對這四個接口分別作一些簡單的介紹。blog
1.Document接口繼承
Document接口表明了整個XML/HTML文檔,所以,它是整棵文檔樹的根,提供了對文檔中的數據進行訪問和操做的入口。索引
因爲元素、文本節點、註釋、處理指令等都不能脫離文檔的上下文關係而獨立存在,因此在Document接口提供了建立其餘節點對象的方法,經過該方法建立的節點對象都有一個ownerDocument屬性,用來代表當前節點是由誰所建立的以及節點同Document之間的聯繫。接口
在DOM樹中,Document接口同其餘接口之間的關係以下圖所示:文檔
由圖能夠看出,Document節點是DOM樹中的根節點,也即對XML文檔進行操做的入口節點。經過Docuemt節點,能夠訪問到文檔中的其餘節點,如處理指令、註釋、文檔類型以及XML文檔的根元素節點等等。另外,從上圖咱們還能夠看出,在一棵DOM樹中,Document節點能夠包含多個處理指令、多個註釋做爲其子節點,而文檔類型節點和XML文檔根元素節點都是惟一的。it
關於Document接口的IDL(InterfaceDefinitionLanguage接口定義語言)定義和其中一些比較經常使用的屬性和方法的詳細介紹在許多參考書均可以找到。io
2.Node接口List
Node接口在整個DOM樹中具備舉足輕重的地位,DOM對象模型接口中有很大一部分接口是從Node接口繼承過來的,例如,Element、Attr、CDATASection等接口,都是從Node繼承過來的。在DOM樹中,Node接口表明了樹中的一個節點。一個典型的Node接口以下圖所示:遍歷
如圖所示,Node接口提供了訪問DOM樹中元素內容與信息的途徑,並給出了對DOM樹中的元素進行遍歷的支持。
3.NodeList接口
NodeList接口提供了對節點集合的抽象定義,它並不包含如何實現這個節點集的定義。NodeList用於表示有順序關係的一組節點,好比某個節點的子節點序列。另外,它還出如今一些方法的返回值中,例如GetNodeByName。
在DOM對象模型中,NodeList的對象是"live"的,換句話說,對文檔的改變,會直接反映到相關的NodeList對象中。例如,若是經過DOM得到一個NodeList對象,該對象中包含了某個Element節點的全部子節點的集合,那麼,當再經過DOM對Element節點進行操做(添加、刪除、改動節點中的子節點)時,這些改變將會自動地反映到NodeList對象中,而不需DOM對象模型應用程序再作其餘額外的操做。
NodeList中的每一個item均可以經過一個索引來訪問,該索引值從0開始。
4.NamedNodeMap接口
實現了NamedNodeMap接口的對象中包含了能夠經過名字來訪問的一組節點的集合。不過注意,NamedNodeMap並非從NodeList繼承過來的,它所包含的節點集中的節點是無序的。儘管這些節點也能夠經過索引來進行訪問,但這只是提供了枚舉NamedNodeMap中所包含節點的一種簡單方法,並不代表在DOM對象模型規範中爲NamedNodeMap中的節點規定了一種排列順序。
NamedNodeMap表示的是一組節點和其惟一名字的一一對應關係,這個接口主要用在屬性節點的表示上。與NodeList相同,在DOM中,NamedNodeMap對象也是"live"的。