`
- 浏览:
409219 次
- 性别:
- 来自:
北京
-
自从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节点类型在互操作性上有优势,但对于对象类型绑定也许不是最好的。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
### W3C DOM模型参考手册知识点详解 #### 一、前言 本手册是一份针对W3C DOM(文档对象模型)模型的详尽参考指南,重点介绍了Gecko引擎所支持的DOM API特性。这份资料最初来自Mozilla开发网站,但由于各种原因,...
总结一下,DOM模型是描述HTML或XML文档结构的数据模型,而Prototype是一个JavaScript库,它提供了一套强大的工具来操作DOM,并实现了面向对象编程的特性。通过学习Prototype,开发者可以更高效地进行前端开发,提升...
1. **DOM模型与SAX模型**:在Java中,XML解析通常涉及DOM(Document Object Model)和SAX(Simple API for XML)。DOM将整个XML文档加载到内存中,形成一个树形结构,适合小到中等规模的文档。SAX则采用事件驱动的...
DOM是一种独立于语言和平台的XML解析模型。给出了支持DOM核心模型和多种DOM扩展规范的XML编辑器ONCEXMLEditor的实现。ONCEXMLEditor具有高效的XML验证和序列化性能,同时提供给用户多种功能,包括按需遍历文档、提供上...
DOM4J是基于DOM模型的,但相比Java内置的DOM API,DOM4J更轻量级且易于使用。它支持XPath查询,提供了丰富的事件处理机制,并且与JDOM和XOM等其他XML库有良好的互操作性。DOM4J的2.0.3版本修复了一些已知问题,提升...
6. **性能和效率**:DOM4J设计时考虑了性能,它在处理大型XML文档时相比纯DOM模型有显著优势,因为它允许分段加载和处理,减少了内存占用。 7. **Spring框架集成**:DOM4J与Spring框架有紧密的联系,Spring使用DOM4...
- **DOM解析**:虽然DOM4J主要不基于DOM,但仍然可以使用DOM模型进行解析,适合小规模的XML文件。 - **StAX解析**:流式API,允许开发者按需读取XML,节省内存。 3. **操作XML**: - **添加元素**:可以方便地在...
"domtoimage使用HTML5canvas从DOM节点生成图像" 这个标题提到了一个名为 "domtoimage" 的工具,它利用HTML5的Canvas API将DOM(文档对象模型)中的节点转换为图像。这个过程通常用于网页截图或者在网页中保存和分享...
它支持事件驱动的解析模型(SAX)和树型模型(DOM),使得开发者可以根据项目需求选择最适合的解析策略。 2. **XPath支持**:Dom4J内置了XPath支持,允许通过简洁的表达式来定位XML文档中的节点,大大简化了数据...
DOM4J则是Java中的一个DOM实现,它扩展了DOM模型,提供了更丰富的功能。 - **Element**:DOM4J中的元素类代表XML文档中的标签,包含了属性、子元素等信息。 - **Attribute**:元素的属性,用于描述元素的特性。 -...
”暗示了文档主要围绕在Java环境下,使用DOM(文档对象模型)技术来操作XML文档的内容。DOM是一种独立于平台和语言的接口,它将任何HTML或XML文档描述成一个树形结构,在该结构中,每一个节点都代表文档中的一个部分...
HTML DOM(Document Object Model)树则是解析和操作HTML文档的一种标准模型。在这个项目中,开发者使用C++实现了一个DOM树,允许对HTML文档进行半结构化的处理。下面我们将深入探讨这个主题。 首先,C++ HTML DOM...
描述中的"使用起来很方便,使用普通的工具解压导入即可"意味着开发者可以很容易地将dom4j-1.6.1.jar添加到他们的项目中。这通常通过Java的类路径(Classpath)来实现,或者在现代的构建工具如Maven或Gradle中声明为...
DOM是一个基于树形结构的模型,它将网页或XML文档解析为一系列可编程的对象。这些对象代表了文档的各个部分,如元素、属性、文本等。通过这个模型,我们可以访问和修改文档的任何部分,实现动态更新页面的效果。 **...
3. **XML文档对象模型**:DOM4J提供了对XML文档的完整表示,包括元素、属性、文本、注释等节点,以及它们之间的关系。 4. **XML事件处理**:通过监听器和事件驱动模型,可以处理XML解析过程中的事件,如开始文档、...
在描述中提到的`dom4j-1.6.1.jar`是DOM4J库的1.6.1版本,这是该库的一个稳定版本,包含了所有必要的类和方法,以便开发者能够充分利用XML的特性。 DOM4J的主要功能包括: 1. **解析XML**:DOM4J支持多种解析方式,...
但是,根据标题《JavaScript DOM编程艺术【第2版&高清】.pdf》和描述“JavaScript DOM编程艺术,高清资源,无比经典,值得拥有”,我们可以推断这本书主要讲述了JavaScript中DOM(文档对象模型)的相关编程技术。...
在实际应用中,Collada DOM可以与各种3D图形引擎和工具集成,如Ogre3D、Unreal Engine、Unity等,用于在游戏中导入和导出3D模型。此外,它也可以用于3D内容创建工具,帮助开发者进行数据交换和验证。 在进行开发时...
- `dom4jAPI帮助文档.chm`是DOM4J的API详细参考,包括方法、类和接口的描述,是开发过程中不可或缺的参考资料。 DOM4J因其简单易用的API和强大的功能,成为Java XML处理领域的重要工具。通过深入学习和理解DOM4J,...