您的位置:首页 > 编程语言 > Java开发

java如何使用DOM文档

2016-05-12 20:56 441 查看
1

import java.io.FileOutputStream;
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文档
* @author soft01
*/
public class WriteXmlDemo {
public static void main(String[] args) {
List<Emp> list=new ArrayList<Emp>();
list.add(new Emp(1, "张三",25, "男", 5000));
list.add(new Emp(2, "李四",25, "男", 5000));
list.add(new Emp(3, "王物",25, "男", 5000));
list.add(new Emp(4, "赵六",25, "男", 5000));
list.add(new Emp(5, "前妻",25, "男", 5000));
/*
* 使用DOM生成XML文档的大致步骤:
* 1:创建一个Document 对象表示一个空文档
* 2:向Document 中添加根元素
* 3:按照文档应有的结构从根元素开始顺序添加子元素来形成文档结构
* 4 创建XMLWriter对象
* 5 将Document对象写出
* 若写入到文件只能个则形成一个xml文件
*  也可以写出到网络中作为传输数据使用
*/
//1
Document doc=DocumentHelper.createDocument();
//2
/*Document 提供了添加根元素的方法:
* Element addElement(String name)
* 向当前文档中添加指定名字的根元素
* 返回的Element就表示这个根元素
* 需要注意的是,该方法只能调用一次 因为一个文档只能有一个根元素
*/
Element root =doc.addElement("list");
for(Emp emp:list){
/*
* Element 也提供了追加元素的方法:
* Element addElement(String name)
* 调用字数没有限制
* 元素可以包含若干子元素Element nameEle=emple.addElement("name");
nameEle.addText(emp.getName());
*/
Element emple=root.addElement("emp");
//添加name信息
Element nameEle=emple.addElement("name");
nameEle.addText(emp.getName());
//添加年龄
Element ageEle=emple.addElement("age");
ageEle.addText(emp.getAge()+"");//转成String 类型,string.valueof()
Element genderEle=emple.addElement("gender");
genderEle.addText(emp.getGender());
Element salaryEle=emple.addElement("salary");
salaryEle.addText(emp.getSalary()+" ");
emple.addAttribute("id", emp.getId()+"");
}
try {
XMLWriter writer=new XMLWriter(OutputFormat.createPrettyPrint());//字符输出流
FileOutputStream fos=new FileOutputStream("myemp.xml");
writer.setOutputStream(fos);
//5
writer.write(doc);
System.out.print("写出完毕");
writer.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}

2

xml 文档;

<?xml version="1.0" encoding="UTF-8"?>

<list>
<emp id="1">
<name>张三</name>
<age>55</age>
<gender>男</gender>
<salary>5000</salary>
</emp>
<emp id="2">
<name>李四</name>
<age>85</age>
<gender>男</gender>
<salary>5000</salary>
</emp>
<emp id="3">
<name>王物</name>
<age>24</age>
<gender>男</gender>
<salary>5000</salary>
</emp>
<emp id="4">
<name>赵六</name>
<age>25</age>
<gender>男</gender>
<salary>5000</salary>
</emp>
<emp id="5">
<name>前妻</name>
<age>25</age>
<gender>男</gender>
<salary>5000</salary>
</emp>
</list>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: