- 浏览: 34350 次
- 性别:
- 来自: 武汉
文章分类
最新评论
dom4j是Java平台中一个简单易用的XML处理工具,它使用的是Java的Collections架构,提供了对DOM,SAX,JAXP的完整支持。
1.创建新的XML文档
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
public class Users {
public Document createDocument() {
Document document = DocumentHelper.createDocument();
Element root = document.addElement( "users" );
Element me = root.addElement( "user" )
.addAttribute( "userid", "sUCode" )
.addAttribute( "username", "Eric Yu" )
.addText( "myself" );
Element me = root.addElement( "user" )
.addAttribute( "userid", "scottl" )
.addAttribute( "username", "Scott Long" )
.addText( "FreeBSD leader" );
return document;
}
}
以上代码创建了如下的XML文档:
<users>
<user userid="sucode" username="Eric Yu">myself</user>
<user userid="scottl" username="Scott Long">FreeBSD leader</user>
</users>
2.XML文档与字符串之间的相互转换
个人比较喜欢的一个dom4j特性就是它提供了非常简便的方法将XML文档转换为XML格式的字符串。由于Document,Element,Attribute都继承了Node接口,所以他们都提供了asXML()方法,该方法返回节点的XML格式描述。
Document document = (new Users()).createDocument();
String text = document.asXML();
而将XML字符串转换为Document同样非常简便:
Document doc = DocumentHelper.parseText(text);
3.快速遍历
如果需要处理很大的XML文档,为每个循环创建一个Iterator对象将带来很大的开销。这时候推荐使用快速遍历(fast Looping):
public void treeWalk(Document document) {
treeWalk( document.getRootElement() );
}
public void treeWalk(Element element) {
for ( int i = 0, size = element.nodeCount(); i < size; i++ ) {
Node node = element.node(i);
if ( node instanceof Element ) {
treeWalk( (Element) node );
}
else {
// 具体业务代码
}
}
}
4.使用XPath
在dom4j中,XPath可以作用在文档或任何节点上。
// 返回users下的所有user节点
List userlist = document.selectNodes("//users/user");
//返回users下的userid为sucode的user节点
User me = (Element)document.selectSingleNode("//users/user[@userid='sucode']");
selectSingleNode返回符合条件的第一个节点,如果有多个节点匹配,后面的节点将被忽略
5.将XML文档写入文件
我们经常要将XML文档以文件的形式保存。dom4j为XML文档写入文件系统提供了非常直观的方法:
FileWriter out = new FileWriter("users.xml");
document.write(out);
还可以通过XMLWriter指定输出时的格式:
import org.dom4j.Document;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
public class DOMTest {
public void write(Document document) throws IOException {
// 创建XMLWriter对象,目标文件users.xml,使用PrettyPrint格式
XMLWriter writer = new XMLWriter(new FileWriter("users.xml"),
OutputFormat.createPrettyPrint());
// 写文档
writer.write(document);
// 关闭writer
writer.close();
}
}
1.创建新的XML文档
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
public class Users {
public Document createDocument() {
Document document = DocumentHelper.createDocument();
Element root = document.addElement( "users" );
Element me = root.addElement( "user" )
.addAttribute( "userid", "sUCode" )
.addAttribute( "username", "Eric Yu" )
.addText( "myself" );
Element me = root.addElement( "user" )
.addAttribute( "userid", "scottl" )
.addAttribute( "username", "Scott Long" )
.addText( "FreeBSD leader" );
return document;
}
}
以上代码创建了如下的XML文档:
<users>
<user userid="sucode" username="Eric Yu">myself</user>
<user userid="scottl" username="Scott Long">FreeBSD leader</user>
</users>
2.XML文档与字符串之间的相互转换
个人比较喜欢的一个dom4j特性就是它提供了非常简便的方法将XML文档转换为XML格式的字符串。由于Document,Element,Attribute都继承了Node接口,所以他们都提供了asXML()方法,该方法返回节点的XML格式描述。
Document document = (new Users()).createDocument();
String text = document.asXML();
而将XML字符串转换为Document同样非常简便:
Document doc = DocumentHelper.parseText(text);
3.快速遍历
如果需要处理很大的XML文档,为每个循环创建一个Iterator对象将带来很大的开销。这时候推荐使用快速遍历(fast Looping):
public void treeWalk(Document document) {
treeWalk( document.getRootElement() );
}
public void treeWalk(Element element) {
for ( int i = 0, size = element.nodeCount(); i < size; i++ ) {
Node node = element.node(i);
if ( node instanceof Element ) {
treeWalk( (Element) node );
}
else {
// 具体业务代码
}
}
}
4.使用XPath
在dom4j中,XPath可以作用在文档或任何节点上。
// 返回users下的所有user节点
List userlist = document.selectNodes("//users/user");
//返回users下的userid为sucode的user节点
User me = (Element)document.selectSingleNode("//users/user[@userid='sucode']");
selectSingleNode返回符合条件的第一个节点,如果有多个节点匹配,后面的节点将被忽略
5.将XML文档写入文件
我们经常要将XML文档以文件的形式保存。dom4j为XML文档写入文件系统提供了非常直观的方法:
FileWriter out = new FileWriter("users.xml");
document.write(out);
还可以通过XMLWriter指定输出时的格式:
import org.dom4j.Document;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
public class DOMTest {
public void write(Document document) throws IOException {
// 创建XMLWriter对象,目标文件users.xml,使用PrettyPrint格式
XMLWriter writer = new XMLWriter(new FileWriter("users.xml"),
OutputFormat.createPrettyPrint());
// 写文档
writer.write(document);
// 关闭writer
writer.close();
}
}
发表评论
-
Java读取XML文件的工具类
2013-11-06 22:35 964写道 package com.imct.util ... -
java读写xml文件
2013-11-06 22:29 422import java.io.File; import j ... -
jaxb 对象XML list 互转
2013-12-02 22:01 1914写道 import java.lan ... -
Java时间格式转换大全
2013-09-13 17:40 532import java.text.*; import ja ... -
MongoDB与Jackson JSON结合实现接口敏捷开发
2013-09-09 22:51 377MongoDB与Jackson JSON结合实现接口 ... -
JSON-lib框架,转换JSON、XML不再困难
2013-09-08 21:48 522Json-lib可以将Java对象 ... -
json格式转换成javaBean对象的方法
2013-09-08 21:27 2401这个贴可以参考。 http://bbs.csdn.net/ ... -
Java 往 MongoDB 插入文档的几种方法
2013-09-05 23:42 941java 写道 package com.easyway.m ... -
hbase
2013-09-04 23:16 566http://kim-miao.iteye.com/blog/ ... -
win7 64位系统下java开发环境搭建
2011-09-06 22:55 3320win7 64位系统下java开发环境搭建jDK 6mys ... -
Java的线程的实现
2011-03-03 10:12 727线程与进程是类似的,像所有的顺序执行的程序一样,线程也有开头, ... -
遍历map
2011-03-02 21:40 1095import java.util.HashMap; impor ... -
正则表达式
2010-05-30 08:34 570"^\d+$" //非负整数(正整数 + ... -
Java Socket网络编程初级入门
2010-05-30 08:23 641事实上网络编程简单的理解就是两台计算机相互通讯数据而已,对于程 ... -
50个常用sql语句
2010-05-30 07:56 830Student(S#,Sname,Sage,Ssex) 学生表 ... -
字符串进行处理常用方法
2010-05-30 07:50 679因工作需要,常常需要对字符串进行处理,而String类本身不提 ...
相关推荐
Dom4j解析XML文档.doc Dom4j解析XML文档.doc Dom4j解析XML文档.doc Dom4j解析XML文档.doc
基于dom4j的读写xml文件的工具包。封装了dom4j操作xml文档的常和方法。 支持两种读写方法。1:针对小文件的读取整个文档,2:针对大文件的,逐行读取。读到几百M文件毫无压力。
Dom4j解析和生成XML文档 Dom4j解析和生成XML文档 Dom4j解析和生成XML文档 Dom4j解析和生成XML文档 Dom4j解析和生成XML文档
DOM4j操作xml文件DOM4j操作xml文件DOM4j操作xml文件DOM4j操作xml文件DOM4j操作xml文件DOM4j操作xml文件DOM4j操作xml文件DOM4j操作xml文件
dom4j处理xml文档,详细说明,内容全面,详细代码示例
其次,Dom4j 支持 XPath 表达式,可以方便地选择 XML 文档中的元素。最后,Dom4j 可以处理大型 XML 文档,性能非常好。 结论 Dom4j 是一个功能强大且易于使用的 Java 库,用于生成和解析 XML 文档。在本文中,我们...
通过Dom4j创建和读取xml文件下载
利用dom4j--读取xml文件。 代码简洁易懂。
dom,dom4j,sax解析xml 文件经典实例,内置详细注解
使用Dom4j解析复杂的XML文件,简单的xml文件一个标签对,而复杂的xml文件标签对中还有自己的属性,那么这样的xml文件怎么解析呢?看了我的例子就知道了......
使用dom4j创建一个xml文件刘宝宝版:笔记以及项目
XSD使用dom4j校验XML
1、xml文档解析 2、 dom4j解析xml 3、实现xml文件解析 xml字符串解析 xml MAP键值对解析 4、实现xml写入与生成文件
分别使用DOM和DOM4j解析XML文件,因为目前使用最广泛的是DOM4j所以只写了用DOM4j对XML进行增删改查。
Java使用sax、dom、dom4j解析xml文档的代码,包含dom4j的jar包。
dom4j解析xml文件代码示例 dom4j解析xml文件代码示例 dom4j解析xml文件代码示例
dom4j是一个简单的开源库,用于处理XML、 XPath和XSLT,它基于Java平台,使用Java的集合框架,全面集成了DOM,SAX和JAXP。
dom4j解析及生成 xml代码收集dom4j解析及生成 xml代码收集
使用dom4j 和本地dom 解析xml 文件
Dom4J生成XML的完整方法希望大家能用到