Java写xml文件的源代码
package xml01;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.Writer;
import java.util.ArrayList;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
/**
- 使用DOM生成xml文档
- @author Administrator
*/
public class WriterxmlDemo {
public static void main(String[] args) {
List<Emp> empList = new ArrayList<Emp>();
empList.add(new Emp(1,"张三",22,"男",3000));
empList.add(new Emp(2,"李四",23,"男",4000));
empList.add(new Emp(3,"王五",24,"男",5000));
empList.add(new Emp(4,"赵六",25,"男",6000));
empList.add(new Emp(5,"钱七",26,"男",7000));
/*
* 将empList集合中的员工信息保存到myemp.xml中
*******************************************************
* 写出xml文档的大致步骤:
* 1.创建一个Document对象表示一个空白的xml文档
* 2.向Decument对象中添加根元素
* 3.根据应当生成的xml文档的格式逐级向根元素中添加子元素以形成xml文档格式
* 4.创建XmlWriter
* 5.通过Xmlwriter将Decument写出
*/
XMLWriter writer = null;
try {
//创建一个Document对象表示一个空白的xml文档
Document document = DocumentHelper.createDocument();
//添加根标签<list>,该方法只可以使用一次
Element root =document.addElement("list");
//将emplist集合中的每个员工信息以一个<emp>标签的形式保存到<list>标签中
for(Emp emp:empList) {
Element empEle = root.addElement("emp");//向跟标签list中添加子标签<emp>
Element nameEle = empEle.addElement("name");//向<emp>标签中添加<name>
nameEle.addText(emp.getName());//向name标签中添加名字文本
Element ageEle = empEle.addElement("age");//向<emp>标签中添加<age>
ageEle.addText(String.valueOf(emp.getAge()));//向age标签中添加名字文本
Element genderEle = empEle.addElement("gender");//向<emp>标签中添加<gender>
genderEle.addText(emp.getGender());//向gender标签中添加名字文本
Element salaryEle = empEle.addElement("salary");//向<emp>标签中添加<salary>
salaryEle.addText(String.valueOf(emp.getSalary()));//向salary标签中添加名字文本
empEle.addAttribute("id",emp.getId()+"");//加入Id属性
}
FileOutputStream fos = new FileOutputStream("myemp.xml");//创建文件
writer = new XMLWriter(fos,OutputFormat.createPrettyPrint());//写出 ,没后半部分会输出成一行
writer.write(document);
System.out.println("写出完毕!");
writer.close();//关闭流
}catch(Exception e) {
e.printStackTrace();
}finally {
if(writer != null) {
try {
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
小结:new XMLWriter(fos,OutputFormat.createPrettyPrint());//写出 ,没后半部分会输出成一行,xml如果格式为一行,格式快捷键为crl+shift+F或者右键source+Format