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"的。