12.1 JDOM简介
JDOM和dom4j两套API有一个共同的目的:使用简单的、易理解的API来处理XML问题。从两套API最后的结果来看,JDOM的主要API以类为主,而dom4j的主要API则以接口为主。从这个角度来看,dom4j比JDOM更灵活。
12.1.1 JDOM常用API
与dom4j不同的是,JDOM的主要API都是类,而不是接口。JDOM树中各种节点的类图如图12.1所示。
图12.1 JDOM常用API的类图
从图12.1可以看出,JDOM的常用API中只有一个Parent是接口,Parent接口代表所有能包含子内容的节点,有Document和Element两个实现类。该接口里包含如下常用方法:
多个重载的List getContent()方法:返回该元素所包含的所有子内容。
int getContentSize():返回该元素所包含的所有子内容的大小。
两个重载的Iterator getDescendants()方法:获取该元素所包含的所有后代节点。
Document getDocument():返回该元素所在的XML文档所对应的Document。
Parent getParent():返回该元素的父元素。
int indexOf(Content child):返回指定子内容在当前元素的子内容列表中的索引。
多个重载的List removeContent()方法:删除当前元素的指定子内容,并返回被删除的内容。
JDOM的常用类如表12.1所示。
表12.1 JDOM常用类说明
除此之外,JDOM在org.jdom.input包下提供了如下两个类用于构建JDOM树:
DOMBuilder:它负责将一份已有的W3C的Document对象转换为JDOM的Document。
SAXBuilder:它是一个广泛使用的工具类,可将来自输入流、磁盘或指定URL所代表的XML文档转换为JDOM的Document。
JDOM还在org.jdom.output包下提供了如下3个输出工具类:
DOMOutputter:将内存中的JDOM树输出成W3C的DOM树。
SAXOutputter:将内存中的JDOM树输出到SAX2流中,用于触发SAX2事件监听器。
XMLOutputter:将内存中的JDOM树输出成XML文档。
掌握了上面的JDOM常用API之后,就可以使用JDOM来进行实际的XML访问了。
12.1.2 下载和安装JDOM
在正式使用之前,一样需要先下载和安装JDOM,具体请按如下步骤进行:
(1)登录JDOM的官方站点http://www.jdom.org/下载其最新版本。笔者成书之时,JDOM的最新版本是1.1,建议读者也下载该版本。
(2)下载完成将得到jdom-1.1.zip文件,解压缩该文件,可得到如下目录结构:
build:该目录下存放了JDOM项目编译生成的最终结果,其中包含一个jdom.jar文件,它就是JDOM的核心类库。
lib:该目录下存放了JDOM编译和运行所依赖的第三方类库。
samples:该目录下也存放了dom4j的一些相关文档,只是这些文档都是XML格式的。
src:该目录下存放了JDOM项目的全部源代码。
build.xml、LICENSE.txt等相关杂项文档。
(3)在Java项目中使用JDOM非常简单,我们可以将build目录下的jdom.jar添加到系统的CLASSPATH环境变量中。如果使用Ant工具,则只要让项目在编译和运行时可以引用到该JAR即可;如果使用Eclipse等IDE工具,则只要通过Build Path引用到该JAR即可。