上一篇我們講述了dom4j讀取xml的4種方法,甚是精彩,那么怎么樣寫入xml呢?我們直接看下源碼實現。
public static void main(String[] args) throws Exception {
// 創建文檔
Document document = DocumentHelper.createDocument();
// 設置編碼
document.setXMLEncoding("GBK");
// 創建根節點
Element root = document.addElement("students");
// 創建xmlns xml namespace
root.addNamespace("", "http://www.abc.com/ns/test");
root.addNamespace("t", "http://www.abc.com/ns/test");
root.addNamespace("xsi", "http://www.w3.org/2001/XMLSchema-instance");
// 創建屬性
root.addAttribute("xsi:schemaLocation",
"http://www.abc.com/ns/test student.xsd");
// 創建對象數組
Student[] s = new Student[5];
// 創建對象
s[0] = new Student("001", "za", "za@163.com", 50, 19, true);
s[1] = new Student("002", "zb", "zb@163.com", 51, 20, true);
s[2] = new Student("003", "zc", "zc@163.com", 52, 21, true);
s[3] = new Student("004", "zd", "zd@163.com", 53, 22, true);
s[4] = new Student("005", "ze", "ze@163.com", 54, 23, true);
// 寫入對象
for (int i = 0; i < s.length; i++) {
Student stu = s[i];
// 創建根節點
Element e1 = root.addElement("student",
"http://www.abc.com/ns/test");
// 添加子元素
e1.addElement("id").addText(stu.getId());
e1.addElement("name").addText(stu.getName());
e1.addElement("email").addText(stu.getEmail());
e1.addElement("gender").addText(stu.getGender() ? "男" : "女");
e1.addElement("age").addText("" + stu.getAge());
e1.addElement("java").addText("" + stu.getJava());
}
// 創建輸出流
FileOutputStream fos = new FileOutputStream("student.xml");
// 設置編碼
OutputStreamWriter osw = new OutputStreamWriter(fos, "GBK");
OutputFormat of = new OutputFormat();
of.setEncoding("GBK");
of.setIndent(true);
of.setIndent(" ");
of.setNewlines(true);
// 寫入文件
XMLWriter writer = new XMLWriter(osw, of);
writer.write(document);
writer.close();
}
以上代碼言簡意賅。大家可以自己寫寫調試下。
本站文章為寶寶巴士)