Dom4j是一个
Java的XML API,是用来读写XML文件的,是jdom的升级品。dom4j作为一个分优秀的JavaXML API,有着性能优异、功能强大和极其易使用的特点。现在大多的Java软件都在使用dom4j来读写XML,已经是必须使用的jar包。
【文件简介】
Dom4j是一个Java的XML API,是jdom的升级品,用来读写XML文件的。dom4j是一个十分优秀的JavaXML API,具有性能优异、功能强大和极其易使用的特点,它的性能超过sun公司官方的dom技术,同时它也是一个开放源代码的软件,可以在SourceForge上找到它。在IBM developerWorks上面还可以找到一篇文章,对主流的Java XML API进行的性能、功能和易用性的评测,所以可以知道dom4j无论在哪个方面都是非常出色的。如今可以看到越来越多的Java软件都在使用dom4j来读写XML,特别值得一提的是连Sun的JAXM也在用dom4j。这已经是必须使用的jar包, Hibernate也用它来读写配置文件。
【文件预览】
【使用方法】
我们在使用DOM4J进行XML文件的解析操作之前需要获取DOM4J的开发包,我们在项目中使用maven管理工具,因此在pom.xml中添加如下的引用即可。
pom文件如下图所示。
下面我们来完成写XML文件的操作,和之前介绍的其他解析XML文件的工具一样,我们首先需要创建文档,然后定义各个节点和子节点。如下图所示,我们可以看出使用DOM4J操作非常的简单,在创建节点的时候便建立了节点之间的关系,其他的解析工具不能一步完成,然后给各个节点设置内容。
接着我们将内容写入到XML文件,这就需要定义输出格式同时设置输出编码了,我们使用流的方式向文件中输出XML文档,在文件写入完毕后需要关闭流。
运行程序,我们可以使用浏览器或文本编辑器打开XML文件,结果如下图所示。如下图所示,在person节点下面创建了name节点和age节点,同时给name节点一个id属性,值为1。
接着我们来实现读取以上步骤中创建的XML文件,DOM4J同样使用SAX建立解析器,然后通过文档依次找到根节点,再通过根节点找到每一个节点的内容,最后打印输出每个节点的内容。
运行程序后,结果如下图所示,我们通过对比控制台输出的结果和XML原文件,可以发现DOM4J能够快速而准确的解析出XML文件。
【常见问题】
eclipse怎么导入dom4j?首先下载dom4_j xxx.jar 现在的版本是1.6版本的,可以下载最新版本:dom4j-1.6.1.jar
百度一下就能找到,或者去官方网站,这个还是比较好找。
然后把dom4j-1.6.1.jar导入到项目中去。新建项目,然后选中项目右击在弹出的快捷菜单上依次选择Bulid Path - Add External Archives...
在文件选择对话框中,打开刚下载的jar文件,点击打开。
如果出现如图所示的界面表示已经成功添加。
进行简单的测试,新建一个简单的xml文件用于测试:test.xml。
添加一个测试类:xml.java.运行测试,可以正常读取到xml的节点内容。
删除导入的dom4j文件,右击项目在弹出的菜单选择:Properties,这时会弹出一个属性面板界面,在左边选择: Java Build Path ,然后点击右边的Libraries,如图所示,选中dom4j-1.6.1.jar-D:\jar (后面的是地址,不同位置会显示不同的地址),点击右边的Remove,再点下面的Apply即可移除。
java使用dom4j读取xml文件修改添加子节点?
首先去dom4j下载适合自己版本的jar包,在这里我使用给到版本是
“dom4j”,下载好后添加到你的项目中,便可以使用了。
dom4j操作xml,首先第一步是获取文件并读取为文档对象(Document)
dom4j提供的SAXReader()的方法便可实现。
在获取文件转为Document对象后,首先获取根节点(元素),使用
getRootElement()可以获取xml的根节点。
这里其实要注意,如果你的xml文件的格式是多层嵌套,而且你想获取到的节点是在多层嵌套内的,最基础的办法就是一层一层往下面获取(不在这里讲述迭代),如图代码所示
当你获取要操作的节点,要为它添加子节点的时候,首先通过elements()方法获取到当前节点的子节点List集合,然后createElement()去创造节点,然后插入到List集合当中,无论你插入怎样复杂的子节点,基本操作都是一样的,复杂的节点只是做着一个重复的操作。
在修改完成后,将文档对象重新输出为文件,有的xml文件要求内容里不能有空格,按照图中设置format即可,然后XMLWriter完成xml文件写入操作。