基于之前写的文章:如何用dom4j创建XML文件并写入节点
进行优化处理。
主要是增加对于文件是否存在的判断,看一个dome:
public class xml{
public static void saveXml( ) throws DocumentException {
String path=StaticValue.ApplicationPath + "/ReportSchema.xml";
File file=new File(path);
Document document=null;
Element root=null;
//判断文件是否存在,存在就读取,不存在就创建
if (file.exists()){
SAXReader reader=new SAXReader();
document=reader.read(path);
root=document.getRootElement();//获取根元素
}else {
document = DocumentHelper.createDocument();
root = document.addElement("Element"); //创建根元素
}
//开始正常元素写入过程,创建节点,增加内容,此处不做具体展示
最后别忘了写入文件的操作:
OutputFormat format = OutputFormat.createPrettyPrint();
//设置xml文档的编码为utf-8
format.setEncoding("UTF-8");
Writer out;
try {
//创建一个输出流对象
out = new OutputStreamWriter(new FileOutputStream(path),"UTF-8");
//创建一个dom4j创建xml的对象
System.out.println("写入成功!");
XMLWriter writer = new XMLWriter(out, format);
// 调用write方法将doc文档写到指定路径
writer.write(document);
writer.close();
// System.out.print("生成XML文件成功");
} catch (IOException e) {
System.out.print("写入XML文件失败");
e.printStackTrace();
}
}
}