下面小编就为大家带来一篇dom4j创建和解析xml文档的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
dom4j解析
特征:
1、jdom的一种智能分支,它合并了许多超出基本xml文档表示的功能。
2、它使用接口和抽象基本类方法。
3、具有性能优异、灵活性好、功能强大和极端易用的特点。
4、是一个开放源码的文件
jar包:dom4j-1.6.1.jar
创建 book.xml:
package com.example.xml.dom4j;
import java.io.filewriter;
import org.dom4j.document;
import org.dom4j.documenthelper;
import org.dom4j.element;
import org.dom4j.io.outputformat;
import org.dom4j.io.xmlwriter;
/**
* dom4j创建xml文档示例
*
*/
public class dom4jtest4 {
public static void main(string[] args) throws exception {
// 第二种方式:创建文档并设置文档的根元素节点
element root2 = documenthelper.createelement("bookstore");
document document2 = documenthelper.createdocument(root2);
// 添加一级子节点:add之后就返回这个元素
element book1 = root2.addelement("book");
book1.addattribute("id", "1");
book1.addattribute("name", "第一本书");
// 添加二级子节点
book1.addelement("name").settext("遇见未知的自己");
book1.addelement("author").settext("张德芬");
book1.addelement("year").settext("2014");
book1.addelement("price").settext("109");
// 添加一级子节点
element book2 = root2.addelement("book");
book2.addattribute("id", "2");
book2.addattribute("name", "第二本书");
// 添加二级子节点
book2.addelement("name").settext("双城记");
book2.addelement("author").settext("狄更斯");
book2.addelement("year").settext("2007");
book2.addelement("price").settext("29");
// 设置缩进为4个空格,并且另起一行为true
outputformat format = new outputformat(" ", true);
// 另一种输出方式,记得要调用flush()方法,否则输出的文件中显示空白
xmlwriter xmlwriter3 = new xmlwriter(new filewriter("book.xml"),format);
xmlwriter3.write(document2);
xmlwriter3.flush();
// close()方法也可以
}
}
运行结果:
解析 book.xml:
package com.example.xml.dom4j;
import java.io.file;
import java.util.iterator;
import java.util.list;
import org.dom4j.attribute;
import org.dom4j.document;
import org.dom4j.documentexception;
import org.dom4j.element;
import org.dom4j.io.saxreader;
/**
* dom4j解析xml文档示例
*
*/
public class dom4jtest3 {
public static void main(string[] args) {
// 解析books.xml文件
// 创建saxreader的对象reader
saxreader reader = new saxreader();
try {
// 通过reader对象的read方法加载books.xml文件,获取docuemnt对象。
document document = reader.read(new file("book.xml"));
// 通过document对象获取根节点bookstore
element bookstore = document.getrootelement();
system.out.println("根节点名:"+bookstore.getname());
// 通过element对象的elementiterator方法获取迭代器
iterator it = bookstore.elementiterator();
// 遍历迭代器,获取根节点中的信息(书籍)
while (it.hasnext()) {
system.out.println("=====开始遍历子节点=====");
element book = (element) it.next();
system.out.println("子节点名:"+book.getname());
// 获取book的属性名以及 属性值
list<attribute> bookattrs = book.attributes();
for (attribute attr : bookattrs) {
system.out.println("属性名:" + attr.getname() + "--属性值:"
+ attr.getvalue());
}
iterator itt = book.elementiterator();
while (itt.hasnext()) {
element bookchild = (element) itt.next();
system.out.println("节点名:" + bookchild.getname() + "--节点值:" + bookchild.getstringvalue());
}
system.out.println("=====结束遍历该节点=====");
}
} catch (documentexception e) {
e.printstacktrace();
}
}
}
运行结果:
以上就是详解dom4j创建和解析xml文档的实现方法的详细内容。