DOM4J是一组XML操作的组件包,主要用来读写XML文件。由于DOM4J性能优异、功能强
大,而且具有易用性,所以现在已经被广泛地应用开来了。例如:Hibernate和Spring框架
中都使用了DOM4J进行XML的解析操作。
接口 | 描述 |
Attribute | 定义了XML的属性 |
Branch |
为能够包含子节点的节点,如XML元素(Element)和文档(Document)
定义了一个公共的行为
|
CDATA | 定义了 XML CDATA区域 |
CharacterData | 是一个标识接口,标识基于字符的节点,如CDATA、Comment、Text |
Comment | 定义了XML的注释 |
Document | 定义了XML文档 |
Element | 定义了XML元素 |
Text | 定义了XML文本节点 |
一.DOM4J生成XML文件
package com.zyy.jwb;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
/**
* DOM4J生成XML
*
* @author CaMnter
*
*/
public class DOM4JWriter {
public static void main(String[] args) {
// 创建文档
Document doc = DocumentHelper.createDocument();
// 定义节点
Element parent = doc.addElement("parent");
// 定义子节点
Element children = parent.addElement("children");
Element name = children.addElement("name");
Element email = children.addElement("email");
// 设置子节点内容
name.setText("CaMnter");
email.setText("www.CaMnter.com");
// 设置输出格式
OutputFormat outputFormat = OutputFormat.createPrettyPrint();
// 指定输出编码
outputFormat.setEncoding("GBK");
// 取得当前操作目录
String curDir = System.getProperty("user.dir");
// 输出
try {
XMLWriter xmlWriter = new XMLWriter(new FileOutputStream(new File(
curDir + File.separator + "outputXML.xml")), outputFormat);
xmlWriter.write(doc);
xmlWriter.close();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
二.DOM4J读取XML文件
package com.zyy.jwb;
import java.io.File;
import java.util.Iterator;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
/**
* DOM4J读取XML
*
* @author CaMnter
*
*/
public class DOM4JReader {
public static void main(String[] args) {
// 取得当前操作目录
String curDir = System.getProperty("user.dir");
File file = new File(curDir + File.separator + "outputXML.xml");
SAXReader reader = new SAXReader();
Document doc = null;
// 读取
try {
doc = reader.read(file);
} catch (DocumentException e) {
e.printStackTrace();
}
// 取得根节点
Element root = doc.getRootElement();
Iterator iter = root.elementIterator();
while (iter.hasNext()) {
Element children = (Element) iter.next();
System.out.println(children.elementText("name"));
System.out.println(children.elementText("email"));
}
}
}