对xml的处理_Dom4j入门三

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

你可能感兴趣的:(eclipse,jdk,exception,xml,File,iterator)