使用dom4j操作XML
DOM4J介绍
DOM4J是使用Java语言编写的,用于读写及操作XML的一套组件,DOM4J同时具有DOM修改文件的优点和SAX读取快速的优点。
DOM4J的使用
首先下载dom4j的JAR包,我用的版本是1.6.1,下载地址:http://download.csdn.net/detail/onroads/9721574
使用方法《使用JDOM操作XML》,链接:http://www.cnblogs.com/centor/p/6215082.html
另外,解压后用到dom4j01.6.1.jar文件,还有一个lib/jaxen-1.1-beta-6.jar文件,一般也需要引入,否则执行时可能抛出java.lang.NoClassDefFoundError:org/jaxen/JaxenException异常。DOM4J的主要接口如下:

使用DOM4J
生成xml例程:
package com.xml; import java.io.File;
import java.io.FileOutputStream; import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter; public class XMLtest { public static void main(String args[]) throws Exception { String[] names = {"鸣人","佐助","小樱"};
String[] emails = {"mingren@163.com","zuozhu@163.com","xiaoying@163.com"};
String[] ids ={"H1","H2","H3"}; Document doc = DocumentHelper.createDocument();
Element addresslist = doc.addElement("addresslist"); for (int i = 0; i < 3; i++) {
Element linkman = addresslist.addElement("linkman");
Element name = linkman.addElement("name");
Element email = linkman.addElement("email");
name.setText(names[i]);
email.setText(emails[i]);
name.setAttributeValue("id", ids[i]);
} OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("GBK");
try {
XMLWriter xmlWriter = new XMLWriter(new FileOutputStream("D:"+File.separator+"person.xml"), format);
xmlWriter.write(doc);
xmlWriter.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
生成的xml文件:

解析XML文件:
package com.xml; import java.io.File;
import java.util.Iterator; import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader; public class XMLtest { public static void main(String args[]) throws Exception { File file = new File("D:"+File.separator+"person.xml");
SAXReader reader = new SAXReader();
Document doc = null;
try {
doc = reader.read(file); } catch (Exception e) {
e.printStackTrace();
} Element root = doc.getRootElement();
Iterator iterator = root.elementIterator();
while(iterator.hasNext()){
System.out.println("<linkman>");
Element linkman = (Element) iterator.next();
System.out.println(" <name id="+ linkman.element("name").attributeValue("id")+">"+linkman.elementText("name")+"</name>");
System.out.println(" <email>"+linkman.elementText("email")+"</email>");
System.out.println("</linkman>");
}
}
}
解析结果:

使用dom4j操作XML的更多相关文章
- xml解析 使用dom4j操作xml
使用dom4j操作xml 1 导入 dom4j,的jar包 2 指定要解析的XML文件 SAXReader sr=new SAXReader(); Document document= sr.r ...
- DOM4J操作XML(包括封装和解析)
DOM4J操作XML(包括封装和解析) 先来看看dom4j中相应XML的DOM树建立的继承关系 针对于XML标准定义.相应于图2-1列出的内容,dom4j提供了下面实现: 以下给出一个详细事例: pa ...
- Strus2第一次课:dom4j操作xml
先从底层的xml操作技术记录: 当我们新建一个项目,什么架包都没加入的时候,java提供了 org.w3c.dom给我们操作xml里面的元素 import org.w3c.dom.Document; ...
- XML学习笔记(2)--dom4j操作XML
1. 介绍(四种方式的比较这部分转载自:http://www.blogjava.net/xcp/archive/2010/02/12/312617.html) 1)DOM(JAXP Crimson解析 ...
- dom4j操作xml文档
java Dom4j解析XML文件 标签(空格分隔):java进阶 xml文档: <?xml version="1.0" encoding="UTF-8" ...
- 使用Dom4j操作XML数据
--------------siwuxie095 dom4j 是一个非常优秀的 Java XML 的 API, 用来读写 XML 文件 和操作 ...
- dom4j操作xml
dom4j是一个Java的XML API,类似于jdom,用来读写XML文件.是一个非常优秀的Java XML API,具有性能优异.功能强大和极端易用使用的特点,同时它也是一个开放源工具.可以在这个 ...
- dom4j操作xml对象
// 获取Documen对象 public static Document getDocument(String path) throws Exception{ ...
- dom4j操作xml的demo
package com.cn.shop.util; import java.io.File;import java.io.FileOutputStream;import java.io.OutputS ...
随机推荐
- Apache Spark技术实战之9 -- 日志级别修改
摘要 在学习使用Spark的过程中,总是想对内部运行过程作深入的了解,其中DEBUG和TRACE级别的日志可以为我们提供详细和有用的信息,那么如何进行合理设置呢,不复杂但也绝不是将一个INFO换为TR ...
- LR11破解License
golba-65000: AEACFSJI-YJKJKJJKEJIJD-BCLBR golba-100: AEAMAUIK-YAFEKEKJJKEEA-BCJGI web-10000: AEABEXF ...
- Thinking in Java——笔记(18)
I/O The original byte-oriented library was supplemented with char-oriented, Unicode-based I/O classe ...
- Thinking in Java——笔记(13)
Strings Immutable Strings Objects of the String class are immutable. Every method in the class that ...
- Unite洛杉矶峰会精彩回顾:从图形、平台再到VR
产品质量与工作流程 在Unity的研发过程中,保持创新的步伐与稳定性的平衡一直是一个挑战.Unity曾经向所有的用户承诺:Unity将专注于提升产品的质量并保证Unity版本稳定性的决心. 大会伊始, ...
- C++中为什么要将析构函数定义成虚函数
构造函数不可以是虚函数的,这个很显然,毕竟虚函数都对应一个虚函数表,虚函数表是存在对象内存空间的,如果构造函数是虚的,就需要一个虚函数表来调用,但是类还没实例化没有内存空间就没有虚函数表,这根本就是个 ...
- Windows下安装Python lxml库(无废话版)
python官网:python-2.7.12.amd64.msihttps://pypi.python.org/pypi/setuptools:setuptools-28.6.0.zipsetupto ...
- Datatable常用系列一
Datatable常用系列一 一.用作集合存储数据: DataTable dt = new DataTable("action"); for (int i = 0; i < ...
- SpringMVC操作指南-整合Spring、SpringMVC、Hibernate、JUnit、Log4j、C3P0
- boost any库
转: 原理 c++是一个强类型的语言,要实现一个万能类型可以考虑用void*来保存数据,然后用类型转换进行操作,如: class MyAny{ MyAny(void* input):content_( ...