Webkit–DOM分析
1:什么是HTML DOM
HTML 文档对象模型(HTML Document Object Model)定义了访问和处理 HTML 文档的标准方法。
2:HTML DOM组成
DOM 被分为不同的部分(核心、XML及HTML)和级别(DOM Level 1/2/3):
Core DOM
定义了一套标准的针对任何结构化文档的对象
对应的WEBKIT源码中路径:WebKit\WebCore\dom
XML DOM
提供针对XML的高层的文档处理方法。
对应的WEBKIT源码中路径:WebKit\WebCore\xml
HTML DOM
提供针对HTML的高层的文档处理方法。
对应的WEBKIT源码中路径:WebKit\WebCore\html
可以用下图标示其组成:
3:HTML DOM的层次
层次结构大致可以使用下面这张图来标示:
在WEBKIT中的节点可以分为两类:
1:不能拥有子节点的节点(字符数据),那么这类节点直接派生之Node.
2:能够拥有子节点的,这类节点是派生之ContainerNode,ContainerNode其实也是派生之Node节点,只不过增加了拥有子节点的能力。
下面是两个关键函数的实现:
4:HTML DOM的核心接口
核心接口主要由四个部分组成:
Document(文档)——文档的根节点
Node(节点)——表示文档树的节点,是大多数接口的父接口
NodeList(节点列表)——有序节点集合(如子树)
NameNodeMap(命名节点映射)——无序节点集合(由节点名属性获得的节点集)
4.1:Document
4.2:Node
4.3:NodeList
4.4NameNodeMap
<4.1~4.4的介绍后续补充>
1:什么是HTML DOM
HTML 文档对象模型(HTML Document Object Model)定义了访问和处理 HTML 文档的标准方法。
2:HTML DOM组成
DOM 被分为不同的部分(核心、XML及HTML)和级别(DOM Level 1/2/3):
Core DOM
定义了一套标准的针对任何结构化文档的对象
对应的WEBKIT源码中路径:WebKit\WebCore\dom
XML DOM
提供针对XML的高层的文档处理方法。
对应的WEBKIT源码中路径:WebKit\WebCore\xml
HTML DOM
提供针对HTML的高层的文档处理方法。
对应的WEBKIT源码中路径:WebKit\WebCore\html
可以用下图标示其组成:
3:HTML DOM的层次
层次结构大致可以使用下面这张图来标示:
在WEBKIT中的节点可以分为两类:
1:不能拥有子节点的节点(字符数据),那么这类节点直接派生之Node.
2:能够拥有子节点的,这类节点是派生之ContainerNode,ContainerNode其实也是派生之Node节点,只不过增加了拥有子节点的能力。
下面是两个关键函数的实现:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
inline Node* Node::firstChild()
const
{
if
(!isContainerNode())
return
0
;
return
toContainerNode(
this
)->firstChild();
}
inline Node* Node::lastChild()
const
{
if
(!isContainerNode())
return
0
;
return
toContainerNode(
this
)->lastChild();
}
|
4:HTML DOM的核心接口
核心接口主要由四个部分组成:
Document(文档)——文档的根节点
Node(节点)——表示文档树的节点,是大多数接口的父接口
NodeList(节点列表)——有序节点集合(如子树)
NameNodeMap(命名节点映射)——无序节点集合(由节点名属性获得的节点集)
4.1:Document
4.2:Node
4.3:NodeList
4.4NameNodeMap
<4.1~4.4的介绍后续补充>