以下介绍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:/teacher2.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("儿子")){//找到特定节点,然后添加子节点
addChild(child);//添加子节点
WriteInFiler(doc);//添加完子节点,将doc写入xml文件替换以前的xml文件
break;//然后退出循环
}
//如果没有找到对应的节点,就递归继续找
Iterator its=child.elementIterator();//获取该节点的子节点的迭代器
if(its.hasNext()){//如果子节点存在
Writerxml(child);//递归获取下一层子节点
}
}
}
//添加子节点
public static void addChild(Element element){
Element childer = element.addElement("大孙子");
childer.addAttribute("体重", "78kg");
childer.setText("无能");
}
//将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:/teacher2.xml")),opt);
w.write(doc);
w.close();
}catch(Exception e){
e.printStackTrace();
}
}