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节点,只不过增加了拥有子节点的能力。

下面是两个关键函数的实现:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
inline Node* Node::firstChild() const
{
if(!isContainerNode())
return0;
returntoContainerNode(this)->firstChild();
}
 
inline Node* Node::lastChild() const
{
if(!isContainerNode())
return0;
returntoContainerNode(this)->lastChild();
}


4:HTML DOM的核心接口

核心接口主要由四个部分组成:

Document(文档)——文档的根节点

Node(节点)——表示文档树的节点,是大多数接口的父接口

NodeList(节点列表)——有序节点集合(如子树)

NameNodeMap(命名节点映射)——无序节点集合(由节点名属性获得的节点集)

4.1:Document

4.2:Node

4.3:NodeList

4.4NameNodeMap
发布了3 篇原创文章 · 获赞 0 · 访问量 2万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章