以下介紹Dom4j的環境是:windowsXP、eclipse3.5.0、jdk1.6、Dom4j1.6.1.jar
Dom4j1.6.1.jar架包可以在本人的資源中下載,歡迎下載使用
public static Document doc=null;
//解析xml文件---刪除子節點
public static void analyticalXML(){
SAXReader readerxml=new SAXReader();
try {//讀取一個形式良好的xml文件形成一個document對象
doc=readerxml.read(new File("C:/Dom4j_02.xml"));
Element root=doc.getRootElement();//獲取該對象的根節點
Writerxml(root);//通過該方法進行遞歸獲取所有子節點
} catch (DocumentException e) {
e.printStackTrace();
}
}
//遞歸獲取所有子節點
public static void Writerxml(Element root){
for(Iterator it=root.elementIterator();it.hasNext();){
Element child=(Element) it.next();//獲取子節點
if(child.getName().equals("兒子")){//找到特定節點,然後刪除
child.clearContent();//刪除該節點及其子節點
//element.addAttribute("身高", "190cm");更新子節點的屬性內容
WriteInFiler(doc);//刪除節點,將doc寫入xml文件替換以前的xml文件
break;//然後退出循環
}
//如果沒有找到對應的節點,就遞歸繼續找
Iterator its=child.elementIterator();//獲取該節點的子節點的迭代器
if(its.hasNext()){//如果子節點存在
Writerxml(child);//遞歸獲取下一層子節點
}
}
}
//將xml寫入文件doc.xml文件中
public static void WriteInFiler(Document doc){
try{
OutputFormat opt=OutputFormat.createPrettyPrint();
opt.setEncoding("GB2312");
XMLWriter w=new XMLWriter(new FileWriter(new File("C:/Dom4j_02.xml")),opt);
w.write(doc);
w.close();
}catch(Exception e){
e.printStackTrace();
}
}