得鹿梦鱼 得鹿梦鱼

HTML解释器和DOM模型

DOM模型

DOM标准

DOM(document object model)的全称是文档对象模型,他可以以一种独立于平台和语言的方式访问和修改一个文档的内容和结构,这里的文档可以是HTML文档、XML文档或者XHTML文档,DOM以面向对象的方式来描述文档
DOM定义的是一组与平台、语言无关的接口,该接口允许编程语言动态访问和更改结构化文档,使用DOM表示的文档被描述为一个树形结构哦,使用DOM的接口可以对DOM树结构进行操作

DOM Level 1

  • Core: 一组底层的接口,其接口可以表示任何结构化文档,同时也允许对接口进行扩展
  • HTML: 对core定义的接口之上,W3C定义了一组上层接口,只要是为了对HTML文档进行访问,将其HTML的内容定义为文档、节点、属性、元素、文本

DOM Level 2

  • Core: 对Level1 Core的扩展
  • views:描述跟踪一个文档的各种视图的接口
  • events: 对DOM事件的处理
  • style: 修改HTML元素的样式属性
  • traversal and range: 遍历树以及对制定范围的文档的修改、删除等操作

DOM Level 3

  • core: 对Level2 Core的扩展
  • load and save: 允许动态加载xml文件
  • validation: 允许程序验证文档的有效性
  • events: 对Level2 events的扩展
  • xpath: 通过xpath来访问DOM树

DOM树

结构模型

DOM结构构成的基本要素是节点,而文档的DOM结构是由层次化的节点组成

DOM树组成

众多的节点按照层次组织构成一个DOM树形结构

HTML解释器

就是将网络或者本地磁盘获取的HTML网页和资源从字节流解释为DOM树结构,流程为

HTML解释器流程

主要类

  • FrameLoader: HTML框结构内容加载
  • DocumentLoader: 加载HTML文档构建DOM树
  • DocumentWriter: 辅助类,创建DOM树的根基点HTMLDoument对象
  • HTMLDocumentParser: 管理类
  • HTMLTokenizer: 词法分析器
  • HTMLTreeBuilder: DOM树的建立
  • HTMLJScriptRunner: DOM树创建过程需要执行的js代码