`

DOM模型概述

    博客分类:
  • java
阅读更多
自从W3C建立了DOM标准 (W3C DOM)之后,以及DOM和浏览器兼容之后,DOM在实际应用中越来越广泛。
   DOM是Document  Object Model的简称,中文名称为文档对象模型。它的主要作用是建立网页与 Script 或程序语言沟通的桥梁。

   我们平时可操作及建立文件的属性、方法及事件都以并且用“对象”来展现(例如,document 就代表“文件本身”这个对象,table 对象则代表 HTML 的表格对象等等)。这些对象可以由当今大多数的浏览器以 Script 来取用。

   DOM 常用来和JavaScript交互,也就是说程序以 JavaScript写成,但使用 DOM 来存取页面及其元素。它们两者之间的结合非常紧密,甚至可以说如果没有DOM,我们在使用javascript的时候是不可想象的,因为我们每解析一个节点一个元素都要耗费很多精力,DOM 本身是设计为一种独立的程序语言,以一致的 API 存取文件的结构表述;当然除了JavaScript,DOM可还可以与任何程序语言共同运作,如C/C++、VB、VBS。
  
   在和JavaScript进行交互的时候,DOM主要用来解析XML文档,当你的应用程序需要不断地导航、修改文档或随机地一次访问整个文档时,我们一般就使用DOM来解析。
   在使用DOM进行解析的时候,它在内存中构建起一棵完整的解析树,借此实现对整个XML文档的全面、动态访问。也就是说,它的解析是有层次的,即将所有的html中的元素都解析成树上层次分明的节点,然后我们可以对这些节点进行增删改查等操作,这是对DOM模型的作用的最完善的总结。
   和SAX不同,SAX是顺序解析的,与DOM相比,SAX解析器能提供更好的性能优势,它提供对XML文档内容的有效低级访问。
   SAX模型最大的优点是内存消耗小,因为整个文档无需一次加载到内存中,这使SAX解析器可以解析大于系统内存的文档。另外,你无需像在DOM中那样为所有节点创建对象。最后,SAX“推”模型可用于广播环境,能够同时注册多个ContentHandler,并行接收事件,而不是在一个管道中一个接一个地进行处理。但是SAX的一些缺点使它的流行性不如DOM。

   DOM的使用非常简单。你可以随机地访问XML文档,由于整个树都构建在内存中,因此可以通过DOM API修改这些节点,例如增加一个子节点或修改、删除一个节点。
  不过,虽然内存树结构提供了很好的导航支持,但仍有一些解析策略问题需要仔细考虑。首先,整个XML文档必须一次解析完成,不可能只做部分解析;其次是效率问题,在内存中加载整个文档和构建完整树结构的成本很高,尤其当文档非常大的时候。典型地,DOM树的容量比文档容量要大一个数量级,所以它要消耗大量内存;第三,一般的DOM节点类型在互操作性上有优势,但对于对象类型绑定也许不是最好的。




分享到:
评论

相关推荐

    W3C DOM模型参考手册

    通过上述概述可以看出,《W3C DOM模型参考手册》是一份非常详尽且实用的资源,不仅详细介绍了DOM的基本概念和核心功能,还提供了大量的示例代码,帮助开发者快速掌握并运用DOM技术。无论是对于初学者还是有经验的...

    疯狂HTML 5+CSS 3+JavaScript讲义(第2版)+源代码

    14.1 DOM模型概述 445 14.2 DOM模型和HTML文档 446 14.3 访问HTML元素 448 14.4 修改HTML元素 456 14.5 增加HTML元素 458 14.6 删除HTML元素 463 14.7 传统的DHTML模型 467 14.8 使用window对象 469 14.9 ...

    DOM文档对象模型

    ### DOM文档对象模型详解 #### 一、概述 **DOM文档对象模型**是网页开发中的一个核心概念,它提供了一种结构化的方式来处理HTML或XML文档。通过DOM,开发者能够以编程的方式创建、访问和修改文档的内容、结构及...

    XML-DOM编程模型简单参考手册.doc

    XML-DOM 编程模型简单参考手册 本文档对象模型(Document Object Model,DOM)是应用在 Web 浏览器中的一项技术。浏览器的窗口、文档和历史等对象都被认为是对象模型的一部分。然而,各种浏览器访问和操作这些对象...

    DOM和BOM的使用

    BOM 提供了一些浏览器相关的功能,例如窗口、导航、历史记录等,而 DOM 则是文档对象模型,它允许开发者通过 JavaScript 操作文档的内容和结构。 DOM 概述 DOM 是一个文档对象模型,它将 HTML 文档抽象为一个树形...

    JavaSE-DOM视频讲解

    JavaSE-DOM视频讲解资源目录:【】01-DOM(概述)【】01-DOM(示例-新闻字体)【】01-DOM(示例-邮件列表)【】02-DOM(DOM解析的特点)【】02-DOM(示例-新闻字体2)【】02-DOM(示例-调查问卷)【】03-DOM(DOM三级模型)【】...

    dom4j api文档

    DOM模型允许整个XML文档加载到内存中,便于快速访问和修改;而SAX模型则采用事件驱动的方式,只在需要时处理XML数据,适合处理大型XML文件。 1. **DOM模型**:DOM4J提供了`Document`接口,用于表示整个XML文档。`...

    dom4j-1.6.1.jar.zip

    6. **性能和效率**:DOM4J设计时考虑了性能,它在处理大型XML文档时相比纯DOM模型有显著优势,因为它允许分段加载和处理,减少了内存占用。 7. **Spring框架集成**:DOM4J与Spring框架有紧密的联系,Spring使用DOM4...

    JavaScript文档对象模型概述.pdf

    JavaScript文档对象模型(DOM)是Web开发中一个至关重要的概念,它允许开发者通过编程方式操纵HTML和XML文档的结构、内容和样式。DOM定义了一种标准的、与平台和语言无关的方式来表示和操作XML和HTML文档,使得...

    dom4j jar文件

    DOM4J是一个开源项目,基于Java的DOM模型,但相比标准DOM,它更轻量级且性能更好。DOM4J支持SAX和DOM解析器,并提供了XPath支持,使得在XML文档中查找元素变得更加方便。此外,DOM4J还提供了事件驱动的解析方式,...

    dom4j解析xml详解,包含源代码,dom4j.jar包

    DOM4J是基于DOM模型的,但它比Java标准的DOM API更轻量级,性能更优。DOM4J的主要特点包括: 1. 支持XPath:DOM4J提供了对XPath的全面支持,可以方便地通过表达式查找XML节点。 2. 节点操作简便:添加、删除和修改...

    dom4j dom4j实例

    1. **DOM4J概述** DOM4J的核心理念是基于Java集合框架,使得XML处理更加直观。它支持XML Schema,XPath以及Java注解,提供了包括元素(Element)、属性(Attribute)、文本(Text)等在内的丰富类结构,用于创建、...

    张龙 Schema DOM笔记

    - DOM模型将XML文档转换为一棵树状结构,每个节点代表文档中的一个元素、属性或文本片段。 3. **DOM节点的分类**: - **根节点**(Document):代表整个XML文档,是DOM树的起点。 - **根元素节点**:表示XML文档...

    dom4j解析

    DOM4J是基于DOM模型的,DOM(Document Object Model)是一种W3C标准,用于表示XML文档结构的树型模型。DOM4J在DOM的基础上进行了优化,提供了一种更面向对象的方式来操作XML文档。它不仅支持DOM,还支持SAX(Simple ...

    dom动态生成使用XML DOM生成XML.pdf

    XML DOM 是一个用于处理XML文档的标准对象模型。它提供了一组API(Application Programming Interface,应用程序编程接口),使得开发者能够轻松地创建、读取、更新和删除XML文档中的元素。XML DOM将XML文档视为一个...

    HTML javascript DOM

    ##### 2.1 文档对象模型 (DOM) 文档对象模型(DOM)是一种跨平台和语言中立的接口,它为 HTML 和 XML 文档提供了一种方式来访问和更新其内容、结构和样式。DOM 规定了用于访问和处理 HTML 或 XML 文档的标准方法,...

    第 5 章 BOM 和DOM.pptx

    本章节主要讲解了浏览器对象模型(BOM)和文档对象模型(DOM),并对 JavaScript 中的事件、存储机制和 DOM 操作进行了详细的讲解。 BOM 概述: 浏览器对象模型(BOM)是指浏览器的对象模型,它是 JavaScript ...

    java_Dom4j解析XML详解

    DOM4J基于DOM模型,但性能优于标准DOM,因为它使用了优化的树结构。DOM将整个XML文档加载到内存中,形成一个完整的树形结构;SAX是事件驱动的,逐行解析,不保存整个文档;StAX是推拉模型,允许用户以流式处理XML。 ...

Global site tag (gtag.js) - Google Analytics