以下介绍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();
}
}