1.創建document對象
2.創建根節點,再循環創建子節點
3.格式化
4.生成xml
代碼實現:
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
//創建document
Document doc=DocumentHelper.createDocument();
//創建根節點
Element root=doc.addElement("class");
for(int i=0;i<10;i++)
{
//爲根節點添加子節點
Element student=root.addElement("student");
//爲student節點設置name屬性
student.addAttribute("name", i+"");
student.addElement("name").setText("張三");
student.addElement("sex").setText("男");
student.addElement("age").setText(i+20+"");
}
//設置輸出格式
OutputFormat out=new OutputFormat().createCompactFormat();
out.setEncoding("utf-8");
out.setIndentSize(4);//設置換行的空格個數
out.setNewlines(true);//設置是否換行
try {
String path="src/outdom4j_out.xml";//xml生成的路徑
//創建xmlwriter
XMLWriter writer = new XMLWriter(new FileOutputStream(path),out);
//寫入對象
writer.write(doc);
//關閉
writer.close();
System.out.println("ok");
} catch (Exception e1) {
e1.printStackTrace();
}
利用DOM4J解析XML步驟:
1.創建解析器SAXReader
2.獲取document對象
3.循環解析節點
示例代碼:
import java.util.List;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
//創建解析器
SAXReader reader = new SAXReader();
try {
//創建document對象
Document doc=reader.read(Test1.class.getClassLoader().getResource("src/outdom4j_out.xml"));//參數從當前類出發得到項目根目錄(與WebRoot同目錄
//得到根節點
Element root=doc.getRootElement();
List<Element> students=root.elements();
for(Element student:students)
{
//聲明數組
String [] stu=new String [6];
stu[0]=student.attributeValue("no");//得到子節點的屬性值
stu[1]=student.elementText("name");
stu[2]=student.elementText("sex");
stu[3]=student.elementText("id");
stu[4]=student.elementText("javascore");
stu[5]=student.elementText("oraclescore");
System.out.println(stu[0]+"\t"+stu[1]+"\t"+stu[2]+"\t"+stu[3]+"\t"+stu[4]+"\t"+stu[5]);
// list.add(stu);
}
} catch (Exception e) {
e.printStackTrace();
}
利用DOM4J生成XML步驟: