dom4j为一个XML文档在内存中创建了一个树对象模型。 它提供了一组强大易用的API,通过XPath和XSLT来处理、操纵或者遍历XML文件,此外其中还集成了SAX、JAXP和DOM。
为了提供高度可配置的实现策略,dom4j基于接口设计。只需要提供一个DocumentFactory实现,您就可以创建您自己的XML树实现。这种设计,使得在扩展dom4j以定制您需要的特性时,能非常简单地重用dom4j的代码。
本文档将通过代码实例的方式为您提供一个dom4j的实践指南。在实验室项目中,这个开源工具包给我的工作带来了很大的便利,在这篇文章中,我将对项目中用到dom4j完成的任务做个总结,以期和互联网上的众多文档能够互相补充。
读取XML文件
一般性地读取XML文件,在dom4j中操作起来将非常简单。
//
使用XPath遍历一个XML文件的结点
创建一个XML文档并记录到磁盘上
创建一个XML文件,并将其写到磁盘上,也可以使用非常简介的代码来完成,假设我们将上一个代码范例中得到的entry节点的列表,插入到一个新建的XML文档中,然后使用优美的缩进格式保存在磁盘上,我们可以像下面这样编码:
读取一个根节点带有默认Namespace的XML
如果我们刚才的代码范例读取的是符合Atom1.0标准的Feed,那么,根节点带有default namespace的http://www.w3.org/2005/Atom。读取这样的XML文档稍微有点麻烦,网上的代码很多,但是很多都不好用,基本上没有办法像你想的那么干净。
创建一个根节点带有默认Namespace的XML
创建一个带有default namespace的XML的方法,相当的tricky,因为你创建一个Element的方法有很多种,可以通过add方法,默认的建,也可以使用DocumentHelper对象来创建,不过,每种方法给你的结果都不同,往往让你大吃一惊。其他的那些方法,和得到的多种结果,大家可以在网上看,很多。我就提供一个能创建“干净”的XML的代码范例。
最后,罗列一下上文中用到的所有对象所在的包,没有列出的在J2SE内。