package com.cplatform.dom4j;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
/**
* @author wanglei
*
*/
public class Dom4jUtil {
/**
* 创建document
* @return
*/
public static Document createDomFJ(){
//使用DocumentHelper类创建一个文档实例
return DocumentHelper.createDocument();
}
/**
* 创建根节点
* @param rootName 根节点的名字
* @param dom 文档
* @return
*/
public static Element createRoot(String rootName,Document doc){
return doc.addElement(rootName);
}
/**
* 给父节点添加子节点
* @param subName 子节点名字
* @param el 父节点
* @return
*/
public static Element appendChild(String subName,Element el){
return el.addElement(subName);
}
/**
* 给节点赋值
* @param el 节点
* @param value 值
*/
public static void setValue(Element el, String value){
el.setText(value);
}
/**
* 给父节点添加子节点并赋值
* @param subName
* @param el
* @param value
* @return
*/
public static Element appendChild(String subName,Element el,String value){
Element sub = el.addElement(subName);
sub.setText(value);
return sub ;
}
/**
* 添加属性并赋值
* @param attName
* @param attValue
* @param el
*/
public static void addAttribute(String attName,String attValue,Element el){
el.addAttribute(attName, attValue);
}
/**
* 给节点添加说明
* @param commemt 说明的内容
* @param el 需要添加的节点
*/
public static void addComment(String commemt,Element el){
el.addComment(commemt);
}
/**
* 给文档添加注释
* @param comment
* @param doc
*/
public static void addComment(String comment,Document doc){
doc.addComment(comment);
}
/**
* 将document写入文件
* @param encode 编码方式
* @param filePath 文件路径
* @param doc 文档
*/
public static void writeFileFromDocument(String encode,String filePath,Document doc){
OutputFormat format = OutputFormat.createPrettyPrint();//紧缩
format.setEncoding(encode);
try {
XMLWriter writer = new XMLWriter(new OutputStreamWriter(
new FileOutputStream(filePath)),format);
writer.write(doc);
writer.close();
} catch (IOException e) {
System.out.println("写入文件错误");
e.printStackTrace();
}
}
/**
* 得到根节点
* @param filePath
* @return
*/
public static Element getRootElement(String filePath){
SAXReader reader = new SAXReader();
Document doc = null;
try {
doc = reader.read(new FileInputStream(new File(filePath)));
} catch (DocumentException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return doc.getRootElement();
}
/**
* 得到该节点下的所有子节点(不包括子节点的子节点)
* @param el
* @return
*/
@SuppressWarnings("unchecked")
public static List<Element> getElements(Element el){
return el.elements();
}
}
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
/**
* 创建document,添加节点,属性,注释
* 读取document
* @author wanglei
*
*/
public class Dom4jUtil {
/**
* 创建document
* @return
*/
public static Document createDomFJ(){
//使用DocumentHelper类创建一个文档实例
return DocumentHelper.createDocument();
}
/**
* 创建根节点
* @param rootName 根节点的名字
* @param dom 文档
* @return
*/
public static Element createRoot(String rootName,Document doc){
return doc.addElement(rootName);
}
/**
* 给父节点添加子节点
* @param subName 子节点名字
* @param el 父节点
* @return
*/
public static Element appendChild(String subName,Element el){
return el.addElement(subName);
}
/**
* 给节点赋值
* @param el 节点
* @param value 值
*/
public static void setValue(Element el, String value){
el.setText(value);
}
/**
* 给父节点添加子节点并赋值
* @param subName
* @param el
* @param value
* @return
*/
public static Element appendChild(String subName,Element el,String value){
Element sub = el.addElement(subName);
sub.setText(value);
return sub ;
}
/**
* 添加属性并赋值
* @param attName
* @param attValue
* @param el
*/
public static void addAttribute(String attName,String attValue,Element el){
el.addAttribute(attName, attValue);
}
/**
* 给节点添加说明
* @param commemt 说明的内容
* @param el 需要添加的节点
*/
public static void addComment(String commemt,Element el){
el.addComment(commemt);
}
/**
* 给文档添加注释
* @param comment
* @param doc
*/
public static void addComment(String comment,Document doc){
doc.addComment(comment);
}
/**
* 将document写入文件
* @param encode 编码方式
* @param filePath 文件路径
* @param doc 文档
*/
public static void writeFileFromDocument(String encode,String filePath,Document doc){
OutputFormat format = OutputFormat.createPrettyPrint();//紧缩
format.setEncoding(encode);
try {
XMLWriter writer = new XMLWriter(new OutputStreamWriter(
new FileOutputStream(filePath)),format);
writer.write(doc);
writer.close();
} catch (IOException e) {
System.out.println("写入文件错误");
e.printStackTrace();
}
}
/**
* 得到根节点
* @param filePath
* @return
*/
public static Element getRootElement(String filePath){
SAXReader reader = new SAXReader();
Document doc = null;
try {
doc = reader.read(new FileInputStream(new File(filePath)));
} catch (DocumentException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return doc.getRootElement();
}
/**
* 得到该节点下的所有子节点(不包括子节点的子节点)
* @param el
* @return
*/
@SuppressWarnings("unchecked")
public static List<Element> getElements(Element el){
return el.elements();
}
}