文档对象模型(DOM)解析实例

原创 2012年03月27日 09:31:53

DOM主要包含下列内容:

DOM文档是以层次结构组织的节点或信息片段的集合。这个层次结构允许开发人员从树中导航寻找特定信息。分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作。由于它是基于信息层次的,因而DOM被认为是基于树或基于对象的。

DOM解析过程(下图):

利用JAXP把xml文档的内容解析到一个个的Java对象中,只需几行代码就能做到这一点。首先,我们需要建立一个解析器工厂,以利用这个工厂来获得一个具体的解析器对象: 

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

我们在这里使用DocumentBuilderFacotry的目的是为了创建与具体解析器无关的程序,当DocumentBuilderFactory类的静态方法newInstance()被调用时,它根据一个系统变量来决定具体使用哪一个解析器。又因为所有的解析器都服从于JAXP所定义的接口,所以无论具体使用哪一个解析器,代码都是一样的。所以当在不同的解析器之间进行切换时,只需要更改系统变量的值,而不用更改任何代码。这就是工厂所带来的好处。这个工厂模式的具体实现,可以参看下面的类图

DocumentBuilder db = dbf.newDocumentBuilder(); 

当获得一个工厂对象后,使用它的静态方法newDocumentBuilder()方法可以获得一个DocumentBuilder对象,这个对象代表了具体的DOM解析器。但具体是哪一种解析器,微软的或者IBM的,对于程序而言并不重要。 然后,我们就可以利用这个解析器来对XML文档进行解析了: 

Document doc = db.parse("d:/xml/message.xml"); 

DocumentBuilder的parse()方法接受一个XML文档名作为输入参数,返回一个Document对象,这个Document对象就代表了一个XML文档的树模型。以后所有的对XML文档的操作,都与解析器无关,直接在这个Document对象上进行操作就可以了。而具体对Document操作的方法,就是由DOM所定义。

使用Document对象的getElementsByTagName()方法,我们可以得到一个NodeList对象,一个Node对象代表了一个XML文档中的一个标签元素,而NodeList对象,所代表的是一个Node对象的列表: 

NodeList nl = doc.getElementsByTagName("message"); 

我们通过这样一条语句所得到的是XML文档中所有<message>标签对应的Node对象的一个列表。然后,我们可以使用NodeList对象的item()方法来得到列表中的每一个Node对象: 

Node my_node = nl.item(0); 

当一个Node对象被建立之后,保存在XML文档中的数据就被提取出来并封装在这个Node中了。在这个例子中,要提取Message标签内的内容,我们通常会使用Node对象的getNodeValue()方法:

String message = my_node.getFirstChild().getNodeValue(); 

请注意,这里还使用了一个getFirstChild()方法来获得message下面的第一个子Node对象。虽然在message标签下面除了文本外并没有其它子标签或者属性,但是我们坚持在这里使用getFirseChild()方法,这主要和W3C对DOM的定义有关。W3C把标签内的文本部分也定义成一个Node,所以先要得到代表文本的那个Node,我们才能够使用getNodeValue()来获取文本的内容。 

原文:http://www.5itjob.com/java-peixun/608.html

JS DOM(文档对象模型)与BOM(浏览器对象模型)

在JS中,对DOM(Document Object Model)对象和BOM(Browser Object Model )对象的操作是非常重要的内容。DOM主要包括HTML文档的属性和方法,像对HTM...
  • qq_18895659
  • qq_18895659
  • 2016年06月18日 23:26
  • 824

DOM(文档对象模型) 概念

DOM: Document Object Model 文档对象模型                主要用来将标记型文档(html,xml)封装成对象,并将标记型文档中的所有内容(标签、文本、属性等)都...
  • wangjian_an
  • wangjian_an
  • 2016年06月06日 12:39
  • 612

JAvaScript和DOM(文档对象模型)和BOM(浏览器对象模型)

DOM是针对XML但经过扩展用于HTML的应用程序编程接口DOM把整个页面映射成一个多层节点结构,HTML页面中的每一个组成部分都是某种类型的节点,这些节点也包含这不同类型的数据...
  • wang2963973852
  • wang2963973852
  • 2016年10月27日 13:58
  • 1477

dom对象模型-浏览器对象的分层结构图

参考:http://wenku.baidu.com/view/4d39af1959eef8c75fbfb365.html###
  • xyw591238
  • xyw591238
  • 2016年07月01日 16:05
  • 2174

DOM(文档对象模型节点)

DOM(文档对象模型节点) 节点类型NodeTypeNamed ConstantnodeName的返回值nodeValue的返回值Element1ELEMENT_NODEelement namenul...
  • share_free
  • share_free
  • 2016年03月06日 15:04
  • 331

DOM(Document Object Model)文档对象模型的介绍

DOM的特点: 就是将标记型文档封装成了DOM树,也就是会将整个标记型文档加载进内存.( 当标记型文档被DOM解析器解析后,会按照标签的层次关系,产生出一个树形结构,可以成为DOM树.树中的每一个分...
  • u011445690
  • u011445690
  • 2013年08月18日 21:02
  • 403

文档对象模型DOM概述及DOM树

DOM技术 1.Dom概述? * 什么是DOM?  docuemnt object model 文档对象模型 * 它的作用?   重构整个 HTML 文档。您可以添加、移除、改变或重排页面上的项目 *...
  • CSDN_GIA
  • CSDN_GIA
  • 2016年11月28日 14:27
  • 534

DOM文档对象模型——学习总结

DOM全称Document Object Model,文档对象模型,是针对html和xml文档的一个API。 DOM可表示将html或xml文档描述成有层次的节点树。哈哈,盗用度娘的图。 文档节点是...
  • yingzizizizizizzz
  • yingzizizizizizzz
  • 2016年11月29日 22:22
  • 193

js的DOM(文档对象模型)获取节点

认识DOM 文档对象模型DOM(Document Object Model)定义访问和处理HTML文档的标准方法。DOM 将HTML文档呈现为带有元素、属性和文本的树结构(节点树)。...
  • yiren_99
  • yiren_99
  • 2015年08月21日 22:08
  • 1584

文档对象模型(DOM)

             文档对象模型(DOM)文档对象模型(DOM)是用于表示HTML元素以及Web浏览器信息的一个模型,它使脚本程序能够访问网页上的信息。文档对象模型(DOM)的每个对象都有属性、...
  • mxq007
  • mxq007
  • 2007年09月04日 09:11
  • 708
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:文档对象模型(DOM)解析实例
举报原因:
原因补充:

(最多只允许输入30个字)