下面的内容,我们将更多的关注DOM,为DOM作一个较为详细的解析,使我们使用起来更为得心应手。
DOM详解
1.基本的DOM对象
DOM的基本对象有5个:Document,Node,NodeList,Element和Attr。下面就这些对象的功能和实现的方法作一个大致的介绍。
Document对象代表了整个XML的文档,所有其它的Node,都以一定的顺序包含在Document对象之内,排列成一个树形的结构,程序员可以通过遍历这颗树来得到XML文档的所有的内容,这也是对XML文档操作的起点。我们总是先通过解析XML源文件而得到一个Document对象,然后再来执行后续的操作。此外,Document还包含了创建其它节点的方法,比如createAttribut()用来创建一个Attr对象。它所包含的主要的方法有:
createAttribute(String):用给定的属性名创建一个Attr对象,并可在其后使用setAttributeNode方法来放置在某一个Element对象上面。
createElement(String):用给定的标签名创建一个Element对象,代表XML文档中的一个标签,然后就可以在这个Element对象上添加属性或进行其它的操作。
createTextNode(String):用给定的字符串创建一个Text对象,Text对象代表了标签或者属性中所包含的纯文本字符串。如果在一个标签内没有其它的标签,那么标签内的文本所代表的Text对象是这个Element对象的唯一子对象。
getElementsByTagName(String):返回一个NodeList对象,它包含了所有给定标签名字的标签。
getDocumentElement():返回一个代表这个DOM树的根节点的Element对象,也就是代表XML文档根元素的那个对象。
Node对象是DOM结构中最为基本的对象,代表了文档树中的一个抽象的节点。在实际使用的时候,很少会真正的用到Node这个对象,而是用到诸如Element、Attr、Text等Node对象的子对象来操作文档。Node对象为这些对象提供了一个抽象的、公共的根。虽然在Node对象中定义了对其子节点进行存取的方法,但是有一些Node子对象,比如Text对象,它并不存在子节点,这一点是要注意的。Node对象所包含的主要的方法有:
appendChild(org.w3c.dom.Node):为这个节点添加一个子节点,并放在所有子节点的最后,如果这个子节点已经存在,则先把它删掉再添加进去。
getFirstChild():如果节点存在子节点,则返回第一个子节点,对等的,还有getLastChild()方法返回最后一个子节点。
getNextSibling():返回在DOM树中这个节点的下一个兄弟节点,对等的,还有getPreviousSibling()方法返回其前一个兄弟节点。
getNodeName():根据节点的类型返回节点的名称。
getNodeType():返回节点的类型。
getNodeValue():返回节点的值。
hasChildNodes():判断是不是存在有子节点。
hasAttributes():判断这个节点是否存在有属性。
getOwnerDocument():返回节点所处的Document对象。
insertBefore(org.w3c.dom.Node new,org.w3c.dom.Node ref):在给定的一个子对象前再插入一个子对象。
removeChild(org.w3c.dom.Node):删除给定的子节点对象。
replaceChild(org.w3c.dom.Node new,org.w3c.dom.Node old):用一个新的Node对象代替给定的子节点对象。
NodeList对象,顾名思义,就是代表了一个包含了一个或者多个Node的列表。可以简单的把它看成一个Node的数组,我们可以通过方法来获得列表中的元素:
GetLength():返回列表的长度。
Item(int):返回指定位置的Node对象。
Element对象代表的是XML文档中的标签元素,继承于Node,亦是Node的最主要的子对象。在标签中可以包含有属性,因而Element对象中有存取其属性的方法,而任何Node中定义的方法,也可以用在Element对象上面。
getElementsByTagName(String):返回一个NodeList对象,它包含了在这个标签中其下的子孙节点中具有给定标签名字的标签。
getTagName():返回一个代表这个标签名字的字符串。
getAttribute(String):返回标签中给定属性名称的属性的值。在这儿需要主要的是,应为XML文档中允许有实体属性出现,而这个方法对这些实体属性并不适用。这时候需要用到getAttributeNodes()方法来得到一个Attr对象来进行进一步的操作。
getAttributeNode(String):返回一个代表给定属性名称的Attr对象。
Attr对象代表了某个标签中的属性。Attr继承于Node,但是因为Attr实际上是包含在Element中的,它并不能被看作是Element的子对象,因而在DOM中Attr并不是DOM树的一部分,所以Node中的getparentNode(),getpreviousSibling()和getnextSibling()返回的都将是null。也就是说,Attr其实是被看作包含它的Element对象的一部分,它并不作为DOM树中单独的一个节点出现。这一点在使用的时候要同其它的Node子对象相区别。
需要说明的是,上面所说的DOM对象在DOM中都是用接口定义的,在定义的时候使用的是与具体语言无关的IDL语言来定义的。因而,DOM其实可以在任何面向对象的语言中实现,只要它实现了DOM所定义的接口和功能就可以了。同时,有些方法在DOM中并没有定义,是用IDL的属性来表达的,当被映射到具体的语言时,这些属性被映射为相应的方法。
分享到:
相关推荐
【文件名称】"UML入门教程.pptx"看似与主题"DOM4J格式化XML"不直接相关,但可以假设它是博文作者提供的补充材料,可能是为了帮助读者更好地理解XML处理背后的逻辑,通过UML(统一建模语言)来展示类图、序列图或其他...
2. **生成XML**:使用DOM或JAXB(Java Architecture for XML Binding)可以创建XML文件。JAXB允许将Java对象直接转换为XML,反之亦然。 示例代码(使用JAXB生成XML): ```java // 定义Java类 @XmlRootElement...
**DOM4J入门详解** DOM4J是一款强大的Java XML API,它提供了丰富的DOM、SAX、JDOM等接口,使得处理XML文档变得更为便捷。...希望这篇DOM4J入门教程能帮助你快速上手,祝你在XML处理的道路上越走越远!
本篇主要介绍XML解析的基础知识,特别是针对JDOM库的使用,一个Java平台上的XML处理库。 JDOM是Java Document Object Model的缩写,它是为了解决DOM(Document Object Model)在Java中的性能问题而设计的。JDOM提供...
入门篇可能涵盖了XML的基础概念,如XML的语法结构,包括XML声明、元素、属性、文本内容、注释以及处理指令。它可能会解释如何创建一个基本的XML文档,并介绍验证XML文档的重要性,如使用DTD(Document Type ...
本篇将深入探讨XML编程的基础概念、语法特性以及实际应用,帮助你从入门到精通。 1. XML基础: - **语法规范**:XML文档必须有且只有一个根元素,所有元素都以尖括号包围,如`<element>`,属性值需用引号包围。 -...
DOM4J是一个流行的Java XML API,提供了丰富的功能来读取、写入和操作XML文档。本篇文章将详细介绍如何使用DOM4J库来读取XML文档中的节点。 首先,要使用DOM4J,你需要在项目中引入其对应的JAR文件。你可以从官方...
本篇“XML入门课件(一)”提供了深入浅出的教程,适合初学者了解和掌握XML的基本概念和用法。 1. **XML的基本原理**: - XML是一种自描述性语言,其目的是通过提供一套规则来创建具有明确结构的数据。 - XML文档...
XML创建了标识,而DOM的作用就是告诉script如何在浏览器窗口中操作和显示这些标识 上面我们已经简要的讲述了一些XML的基本原理,我们来看看它们之间的关联以及它们是如何工作的,先看这里一张图: 1.XML描述...
7. **ximpleware-2.13-4-java**:这可能是VTD-XML的Java库文件,可以直接在Java项目中导入并使用。 通过这些资源,开发者可以深入理解VTD-XML的工作原理,学习如何在实际项目中应用VTD-XML解析XML,以及如何优化...
本篇文章将深入探讨如何利用排序方法来实现XML的读写及删除操作。 一、XML基础 XML文档由元素(Element)、属性(Attribute)、文本内容(Text Content)等构成,具有自描述性。元素是最基本的构建单元,通常包含...
### 如何才算真正掌握Java(J2SE篇) 在当今的软件开发领域中,Java作为一门重要的编程语言,被广泛应用于各种应用场景之中。对于初学者来说,如何判定自己是否已经掌握了Java,特别是在J2SE(Java 2 Standard ...
### 一、Java入门与基本语法 #### 课程概述 Java课程旨在介绍面向对象编程的基本原则和设计,将Java作为主要的编程语言进行教学,使学生能够掌握基础的Java编程知识,为成为Sun Certified Java Programmer(SCJP)做...
【网络编程基础篇之 JavaScript】深入解析 JavaScript,一种轻量级的解释型编程语言,是Web开发中的核心语言,尤其在网络编程中扮演着至关重要的角色。本篇将带你从入门到精通,全面掌握JavaScript的基础知识及其在...
- **XML基础与应用**:讲解XML(可扩展标记语言)的概念、结构与用途,探讨XML数据处理技术,如DOM、XPath等在Java中的应用,以及XML Schema的数据类型定义。 #### 六、JavaScript入门 - **JavaScript语言特征**:...
在Java开发中,XML被广泛应用于配置文件、数据交换格式等领域。通过提供的链接可以看到,有关于XML的视频教程和资料,这可以帮助开发者深入理解XML的基本概念、语法结构及应用实践。 ### 关键知识点二:AJAX技术 ...
8. **XML处理**:涵盖DOM,SAX,PULL解析器以及JAXB等XML处理技术。 9. **JavaSE 8新特性**:包括Lambda表达式,函数式接口,Stream API,日期/时间API等新功能的使用。 通过对《Java核心》上下两册的学习,开发者...
JAXB的主要目的是简化XML数据处理,让开发者能够轻松地在XML文档和Java类之间进行互操作。此教程旨在为开发人员和系统维护人员提供一个快速入门的指南,帮助他们理解和使用JAXB的基本功能。 **2. 开发指南** **2.1...
本教程"JavaWeb开发教程——入门与提高篇"旨在为初学者提供一个全面的学习路径,同时也为有一定基础的开发者提供进阶知识。教程包含了PDF课件和源码,使学习者能够理论结合实践,更深入地理解JavaWeb开发的核心概念...