XML简介及DOM技术

来源:互联网 发布:金融软件开发商 编辑:程序博客网 时间:2024/06/07 23:54

XML越来越热,基于XML的应用越来越广泛。XML的简单使其易于使用,在广泛的应用程序当中读写数据,使得XML很快成为数据交换的唯一公共语言。使用XML程序可以更加容易的与WindowsMac OS 、或者Linux以及其他平台下产生的信息结合,然后很容易的加载XML数据到程序当中分析后以XML格式输出结果,实现不同平台的跨越。

XMLExtensible Markup Language 的缩写,意为可扩展的标记语言。它是一套定义语义标记的规则,这些标记将文档分成多个部件并且加以标识。XML是一种平台无关的表示数据的方法,用其创建的数据可以被任何应用程序在任何平台上读取,甚至可以通过手动编码来编辑和创建XML文档,其原因就是XMLHTML 都建立在相同的基于标记技术之上。

XMLHTML的区别:

XML并不是标记语言,只是用来创造标记语言(比如HTML)的元语言。XMLHTML不同,其用途比HTML广泛的多。

XML不能用来直接写网页,即便包含XML数据,依然要转换为HTML格式才能在浏览器上显示。

HTML是与显示信息相关的,XML则是与描述信息相关的。XML标记描述的是文档的结构和意义,不描述页面元素的显示方式。

可以自由的选择XML的标签名字(自定义),以使其在附加的上下文中具有额外的意义。

XML (eXtensible Markup Language) 意为可扩展标记语言,它已经是软件开发行业中大多数程序员和厂商用以选择作为数据传输的载体。

最初,XML 语言仅仅是意图用来作为 HTML 语言的替代品而出现的,但是随着该语言的不断发展和完善,人们越来越发现它所具有的优点:例如标记语言可扩展,严格的语法规定,可使用有意义的标记,内容 存储和表现分离等等优势注定了该语言从诞生之日起就会走向辉煌。 XML 语言在成为 W3C 标准之后进入到了一个快速发展的时期,当然它本身所具有的一系列优点和优势也注定了各大技术厂商对它的偏爱,Java 作为软件行业的一种开发技术也迅速作出了反应,出现了多种对 XML 支持的工具。

大名鼎鼎的 DOM

说它大名鼎鼎可是一点不为过,DOM 是 W3C 处理 XML 的标准 API,它是许多其它与 XML 处理相关的标准的基础,不仅是 Java,其它诸如 Javascript,PHP,MS .NET 等等语言都实现了该标准, 成为了应用最为广泛的 XML 处理方式。当然,为了能提供更多更加强大的功能,Java 对于 DOM 直接扩展工具类有很多,比如很多 Java 程序员耳熟能详的 JDOM,DOM4J 等等, 它们基本上属于对 DOM 接口功能的扩充,保留了很多 DOM API 的特性,许多原本的 DOM 程序员甚至都没有任何障碍就熟练掌握了另外两者的使用,直观、易于操作的方式使它深受广大 Java 程序员的喜爱。


DOM技术:

DOM是用于平台和语言无关的方式表示XML文档的官方W3C标准,它是以层次结构组织的节点或信息片段的集合,这个层次结构允许开发人员在树中寻找特定信息。分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作。由于是基于信息层次的,因而DOM被认为是基于树或者基于对象的。

由于树在内存中是持久的,因此可以修改以便应用程序可以更改数据和结构。还可以在任何时候在树中上下导航,而不是像SAX那样一次性处理。

javaorg.xml.dom 软件包当中提供了DocumentDocumentTypeNodeNodeListElementText等接口,这些接口均是访问文件所必须的。

javax.xml.parsers 中提供的DocumentBuilderDocumentBuilderFactory组合可以对XML文件进行解析,转换为DOM文档。

DOM文档中的逻辑结构可以用节点树的形式表述,通过对XML文件的解析处理,其中的元素便转换为DOM文档当中的节点对象。

DOM的基本对象有5个,即DocumentNodeNodeListElementAttr,包含在软件包org.w3c.dom 中。

javax.xml.parsers 中提供的DocumentBuilderFactory DocumentBuilder类,用DocumentBuilderFactory类来生成一个具体的DocumentBuilder类实例,然后由这个该对象来生成一个Document 实例,Document对象中包含了DOM的书模型结构。

DocumentBuilderFactory

抽象类DocumentBuilderFactory 用来生成一个具体的DocumentBuilder实例,使用该类的静态方法创建自身和DocumentBuilder实例对象。

DocumentBuilderFactory  dbFactory   =    DocumentBuilderFactory.newInstance();

DocumentBuilder   db = dbFactory.newDocumentBuilder();

DocumentBuilder

抽象类DocumentBuilder用来从XML文档获取DOM文档实例,通过该类从XML获取一个DOM文档。

DocumentBuilder的实例可以从各种输入源解析XML,这些输入源有InputStreamFileURLSAXInputSource。主要通过实例对象的parse方法。

DocumentBuilderFactory  dbFactory   =    DocumentBuilderFactory.newInstance();

DocumentBuilder   db = dbFactory.newDocumentBuilder();

Document  doc = db.parse(test.xml)