import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
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.SAXReader;
import org.dom4j.io.XMLWriter;
 
public class Dom4jXmlOper {
 
public static void createXml(File file)
{
XMLWriter writer = null;
SAXReader reader = new SAXReader();
 
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("utf-8");//设置XML文件的编码格式,如果有中文可设置为GBK或UTF-8
 
Document _document = DocumentHelper.createDocument();
Element _root = _document.addElement("userinfo");
Element user = _root.addElement("user");
user.addAttribute("id", "001");
Element name = user.addElement("name");
name.setText("张三");
Element age = user.addElement("age");
age.setText("28");
Element sex = user.addElement("sex");
sex.setText("男");
Element email = user.addElement("email");
email.setText("abc@abc.com");
 
//如果上面设置的xml编码类型为GBK,则应当用FileWriter来构建xml文件,否则会出现中文连码问题
/*
try {
writer = new XMLWriter(new FileWriter(file), format);
} catch (IOException e1) {
e1.printStackTrace();
}
*/

 
//如果上面设置的xml编码类型为utf-8,则应当用FileOutputStream来构建xml文件,否则还是会出现乱码问题
FileOutputStream fos = null;
try {
fos = new FileOutputStream(file);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
try {
writer = new XMLWriter(fos, format);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
try {
writer.write(_document);
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args)
{
String filePath = "d:\\temp\\user.xml";//生产的XML文件位置
File file = new File(filePath);
Dom4jXmlOper.createXml(file);
}
 
}