zoukankan      html  css  js  c++  java
  • XML为数据库进行增删改查(实例)

    //增删改查文件

    package xml2;

    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.OutputStreamWriter;
    import java.io.PrintWriter;
    import java.io.UnsupportedEncodingException;
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.List;

    import org.dom4j.Document;
    import org.dom4j.DocumentException;
    import org.dom4j.DocumentHelper;
    import org.dom4j.Element;
    import org.dom4j.io.SAXReader;
    import org.dom4j.io.XMLWriter;
    import org.xml.sax.XMLReader;

    public class Dom4jReadExmple {
     public File file =new File(System.getProperty("user.dir")+File.separator+"dd"+File.separator+"hy.xml");
     //遍历所有
     public void getSelectedNodeValue(List<Student> list){
      if(!file.exists()){
       System.out.println("文件不存在");
      }
      SAXReader saxReader = new SAXReader();
      try {
       Document document= saxReader.read(file);
       Element rootElement= document.getRootElement();
       Iterator iterator=document.selectNodes("//student").iterator();
       while(iterator.hasNext()){
        Student student = new Student();
        College college = new College();
        Element elem =(Element) iterator.next();
        student.setAge(Integer.parseInt(elem.attributeValue("age")==null?"0":elem.attributeValue("age")));
        student.setName(elem.element("name").getText());
        college.setName(elem.element("college").getText());
        college.setLeader(elem.element("college").attributeValue("leader"));
        student.setCollege(college);
        student.setTelephone(elem.elementText("telephone"));
        student.setNote(elem.elementText("notes"));
        
        System.out.println(student.getName());
        System.out.println(student.getAge());
        System.out.println(student.getTelephone());
        System.out.println(student.getCollege().getName());
        System.out.println(student.getCollege().getLeader());
        System.out.println(student.getNote());
        System.out.println("============================");
        list.add(student);
       }
       
      } catch (DocumentException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
      }
     }
     //插入数据
     public void insertIntoXML(Student stu){
      try {
       if(!file.exists()){
        file.createNewFile();
        PrintWriter writer =new PrintWriter(new FileOutputStream(file));
        writer.write("<?xml version='1.0' encoding='UTF-8'?>");
        writer.write(" ");
        writer.write("<all>");
        writer.write(" ");
        writer.write("</all>");
        writer.flush();
        writer.close();
    //    或
    //    BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file)));
    //    bufferedWriter.write("<?xml version='1.0' encoding='UTF-8'?>");
    //    bufferedWriter.write(" ");
    //    bufferedWriter.write("<all>");
    //    bufferedWriter.write(" ");
    //    bufferedWriter.write("</all>");
    //    bufferedWriter.flush();
    //    bufferedWriter.close();
       }
      Document document= DocumentHelper.createDocument();
      Element root=document.addElement("students");
      root.addComment("所有部门信息");
      Element element =root.addElement("student");
      element.addAttribute("id", stu.getId().toString());
      element.addElement("age").addText(stu.getAge().toString());
      element.addElement("name").addText(stu.getName());
      Element element2 =element.addElement("college");
      element2.addText(stu.getCollege().getName());
      element2.addAttribute("leader", stu.getCollege().getLeader());
      element.addElement("telephone").addText(stu.getTelephone());
      element.addElement("notes").addText(stu.getNote());
      
      SAXReader saxReader = new SAXReader();
      Document document2=saxReader.read(file);
       if(null!=document2){
        List lists=document2.selectNodes("//student");
        if(null!=lists&&lists.size()>0){
         Iterator iterator =lists.iterator();
         while(iterator.hasNext()){
          Element element4 =(Element) iterator.next();
          Element element5 =root.addElement("student");
          element5.addAttribute("id", element4.attributeValue("id"));
          element5.addElement("age").addText(element4.elementText("age"));
          element5.addElement("name").addText(element4.elementText("name"));
          element5.addElement("college").addText(element4.elementText("college")).addAttribute("leader", element4.element("college").attributeValue("leader"));
          element5.addElement("telephone").addText(element4.elementText("telephone"));
          element5.addElement("notes").addText(element4.elementText("notes"));
         }
        }
       }
       XMLWriter xmlWriter = new XMLWriter(new FileOutputStream(file));
       xmlWriter.write(document);
       xmlWriter.close();
      } catch (DocumentException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
      } catch (UnsupportedEncodingException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
      } catch (FileNotFoundException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
      } catch (IOException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
      }
      
      
     }
    // 通过id删除
     public void deleteFormXml(int id){
      SAXReader saxReader = new SAXReader();
      try {
       Document document=saxReader.read(file);
       Iterator iterator=document.selectNodes("//student[@id]").iterator();
       while(iterator.hasNext()){
        Element element =(Element) iterator.next();
        if(element.attributeValue("id").equals(String.valueOf(id))){
         document.getRootElement().remove(element);
        }
       }
       XMLWriter xmlWriter = new XMLWriter(new FileOutputStream(file));
       xmlWriter.write(document);
       xmlWriter.flush();
       xmlWriter.close();
       
      } catch (DocumentException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
      } catch (UnsupportedEncodingException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
      } catch (FileNotFoundException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
      } catch (IOException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
      }
     }
    // 修改对应id数据
     public void editXML(Student stu){
      SAXReader saxReader =new SAXReader();
      try {
       Document document =saxReader.read(file);
       Iterator iterator=document.selectNodes("//student[@id]").iterator();
       while(iterator.hasNext()){
        Element element =(Element) iterator.next();
        if(element.attributeValue("id").equals(String.valueOf(stu.getId()))){
         element.element("name").setText(stu.getName());
         element.element("age").setText(stu.getAge().toString());
         element.element("college").setText(stu.getCollege().getName());
         element.element("college").setAttributeValue("leader", stu.getCollege().getLeader());
         element.element("telephone").setText(stu.getTelephone());
         element.element("notes").setText(stu.getNote());
        }
       }
       XMLWriter xmlWriter = new XMLWriter(new FileOutputStream(file));
       xmlWriter.write(document);
       xmlWriter.flush();
       xmlWriter.close();
      } catch (DocumentException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
      } catch (UnsupportedEncodingException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
      } catch (FileNotFoundException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
      } catch (IOException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
      }
     }
     
    }

  • 相关阅读:
    电信生命周期说明
    find in linux 2 微信公众号
    GDB中应该知道的几个调试方法 2 微信公众号
    linux 下程序员专用搜索源码用来替代grep的软件ack(后来发现一个更快的: rg), 且有vim插件的 2 微信公众号
    linux下的 c 和 c++ 开发工具及linux内核开发工具 2 微信公众号
    linux下命令行发送邮件的软件:mutt 微信公众号
    腺样体肿大的综合治疗考虑 微信公众号
    打呼噜治疗方法 微信公众号
    vim 操作 2 微信公众号
    nginx之外的web 服务器caddy 微信公众号
  • 原文地址:https://www.cnblogs.com/hy928302776/p/3241079.html
Copyright © 2011-2022 走看看