package com.rlovep.dom4j; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.UnsupportedEncodingException; import javax.sql.rowset.spi.XmlWriter; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.io.OutputFormat; import org.dom4j.io.SAXReader; import org.dom4j.io.XMLWriter; public class CopyXml { public static void main(String[] args) { try { Document doc = new SAXReader().read("./src/student.xml"); FileOutputStream out=new FileOutputStream("./src/copyStu.xml"); //指定格式,选为经凑型,没有空格和换行符,一整行表示所有内容,代码上线用 OutputFormat format=OutputFormat.createCompactFormat(); //指定格式,选为漂亮型。有空格和换行符,调试用 OutputFormat format2 = OutputFormat.createPrettyPrint(); /* * 指定生成的xml文档的编码 * 同时影响了xml文档保存时的编码 和 xml文档声明的encoding的编码(xml解析时的编码) * 结论: 使用该方法生成的xml文档避免中文乱码问题。 */ format.setEncoding("utf-8"); format2.setEncoding("utf-8"); //创建写出对象 XMLWriter writer=new XMLWriter(out, format); //写出对象 writer.write(doc); //关闭流 writer.close(); } catch (DocumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }