dom4j 增删改查的操作

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hekai7217/article/details/82387534

xml文件如下:

<?xml version="1.0" encoding="utf-8"?>

<students> 
  <student> 
    <name>雷军</name>  
    <age>50</age>  
    <sex></sex> 
  </student> 
</students>

环境配置:
dom4j-2.1.0.jar
junit4

查询的方法:

    /**
     * 读取的操作
     * @throws Exception
     */
    @Test
    public void read() throws Exception {

        // 创建  xml解析器
        SAXReader saxReader = new SAXReader();

        //解析xml
        Document doc = saxReader.read(new File("src/stu.xml"));

        //获取根节点
        Element root = doc.getRootElement();

        //获取student 的节点
        List<Element> stus = root.elements("student");

        for (Element stu : stus) {

            //拿到 节点
            Element nameE = stu.element("name");

            //获取节点的内容
            String text = nameE.getText();
            System.out.println(text);

            System.out.println("******");

            //直接通过 节点 获取 节点中的内容
            String name = stu.elementText("name");
            System.out.println(name);
        }
    }

删除方法:

    /**
     * 删除操作
     */
    @Test
    public void delete() throws Exception {

        //获取工厂
        SAXReader saxReader = new SAXReader();

        //解析  xml
        Document doc = saxReader.read(new File("src/stu.xml"));

        //获取根节点
        Element root = doc.getRootElement();
        //获取第二个 student节点 
        Element stu = root.elements("student").get(1);

        //移除操作
        root.remove(stu);


        //输出流的格式
        OutputFormat format = OutputFormat.createPrettyPrint();
        //设置编码
        format.setEncoding("utf-8");
        //doc 回写到 哪里
        OutputStream os = new FileOutputStream(new File("src/stu.xml"));
        //回写
        XMLWriter xmlWriter = new XMLWriter(os,format);

        try {
            //操作
            xmlWriter.write(doc);
            System.out.println("删除成功");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

添加操作:

    /**
     * 添加操作
     */
    @Test
    public void insert() throws Exception {

        //获取工厂
        SAXReader saxReader = new SAXReader();

        //解析  xml
        Document doc = saxReader.read(new File("src/stu.xml"));

        //获取根节点
        Element root = doc.getRootElement();

        //添加节点 
        Element stu = root.addElement("student");

        Element name = stu.addElement("name");
        name.setText("马化腾");
        Element age = stu.addElement("age");
        age.setText("50");
        Element sex = stu.addElement("sex");
        sex.setText("男");

        //回写操作
        OutputFormat opf=OutputFormat.createPrettyPrint();
        opf.setEncoding("utf-8");

        OutputStream os = new FileOutputStream(new File("src/stu.xml"));
        XMLWriter writer = new XMLWriter(os,opf);
        writer.write(doc);

        System.out.println("添加成功 ...");
    }

修改操作:

   /**
     * 修改操作
     */
    @Test
    public void update() throws Exception {

        //获取工厂
        SAXReader saxReader = new SAXReader();

        //解析  xml
        Document doc = saxReader.read(new File("src/stu.xml"));

        //获取根节点
        Element root = doc.getRootElement();
        //获取第二个 student节点 
        Element stu = root.elements("student").get(1);

        //拿到 节点 设置 值
        stu.element("name").setText("董阿姨");
        stu.element("age").setText("60");
        stu.element("sex").setText("女");

        //回写操作
        OutputFormat opf=OutputFormat.createPrettyPrint();
        opf.setEncoding("utf-8");

        OutputStream os = new FileOutputStream(new File("src/stu.xml"));
        XMLWriter writer = new XMLWriter(os,opf);
        writer.write(doc);

        System.out.println("修改成功 ...");
    }

猜你喜欢

转载自blog.csdn.net/hekai7217/article/details/82387534