- JDOM是一种使用XML的独特Java工具包,用于快速开发XML应用程序。它的设计包含Java语言的语法乃至语义。
- JAXP(用于XML 语法分析的 Java API)包含了三个软件包
- org.w3c.dom , W3C推荐的用于XML标准规划文档对象模型的Java工具
- org.xml.sax,用于对XML进行语法分析的事件驱动的简单 API
- javax.xml.parsers ,工厂化工具,允许应用程序开发人员获得并配置特殊的语法分析器工具。
JDOM能够替换org.w3c.dom 软件包来有计划地探健XML文档
- JDOM是一个开源项目,它基于树型结构,利用纯JAVA的技术对XML文档实现解析、生成、序列化以及多种操作。(http://jdom.org)
- JDOM直接为JAVA编程服务。它利用更为强有力的JAVA语言的诸多特性(方法重载、集合概念等),把SAX和DOM的功能有效地结合起来。
- JDOM是用Java语言读、写、操作XML的新API函数。在直接、简单和高效的前提下,这些API函数被最大限度的优化。
在使用设计上尽可能地隐藏原来使用XML过程中的复杂性。利用JDOM处理XML文档将是一件轻松、简单的事。
JDOM主要用来弥补DOM及SAX在实际应用当中的不足之处。这些不足之处主要在于SAX没有文档修改、随机访问以及输出的功能,而对于DOM来说,JAVA程序员在使用时来用起来总觉得不太方便。
DOM的缺点
主要是由于DOM是一个接口定义语言(IDL),它的任务是在不同语言实现中的一个最低的通用标准,并不是为JAVA特别设计的。
语言独立:
- DOM并不是用人们心目中的Java语言设计的。虽然这种方法保留了在不同语言中非常相似的API,它也使那些习惯Java语言的程序员感到更麻烦。
- 例如:Java语言内建了一种 String类,而DOM则规范定义了自己的Text类。
严格的层次结构:
- DOM API直接沿袭了XMLT 规范。在XML中,每件东西都是一个结点,因此您能在 DOM中找到一个几乎每件东西都可以扩展的基于Node的接口和返回Node的一系列方法。
- 就多态性的观点来讲,它是优秀的,但鉴于如上解释,它在 Java语言中的应用是困难而且不便的,其中从Node向叶类型作显式向下类型转换会导致代码的冗长和难以理解。
接口驱动:
- 公共 DOM API仅由接口组成。w3c对提供实现并不感兴趣,它只对定义接口(比较有意义)感兴趣。但它也意味着作为Java程序员使用API在创建XML对象时增加了负担,因为w3c标准大量使用工厂化的类和类似的灵活的但不直接的模式。
- 在某些应用中,XML文档是仅由语法分析器建立的,而从不会由应用程序级代码建立,这是不相关的。但是,随着XML更广泛的使用,并不是所有问题都继续需要由语法分析器来驱动。应用程序的开发人员需要一个更方便的方法有计划地构造XML对象。
类驱动:
- 因为JDOM对象就是像Document 、Element和Attribute这些类的直接实例,因此创建一个新JDOM对象就如在 Java语言中使用new操作符一样容易。它还意味着不需要进行工厂化接口配置-- JDOM的使用是直截了当的。
JDOM概述
在JDOM中,XML元素就是Element的实例,XML属性就是Attribute的实例,XML文档本身就是Document的实例。
因为JDOM 对象就是像Document、Element和Attribute这些类的直接实例,因此创建一个新JDOM对象就如在
Java语言中使用new操作符一样容易。DOM的使用是直截了当的。
JDOM 使用标准的 Java编码模式。只要有可能,它使用Java new操作符而不使用复杂的工厂模式,使对象操作即便对于初学用户也很方便。
JDOM是由以下几个包组成的
- org.jdom包含了所有的xml文档要素的java类- org.jdom.adapters包含了与dom适配的java类
- org.jdom.filter包含了xml文档的过滤器类
- org.jdom.input包含了读取xml文档的类- org.jdom.output包含了写入xml文档的类
- org.jdom.transform包含了将jdomxml文档接口转换为其他xml文档接口
- org.jdom.xpath包含了对xml文档xpath操作的类
JDOM类说明
org.jdom这个包里的类是你解析xml文件后所要用到的所有数据类型
- Attribute
- CDATA
- Coment
- DocType
- Document
- Element
- EntityRef
- Namespace
- ProscessingInstruction
- Text