使用dom4j查询和新增数据

1、准备工作,引入jar包或者依赖

 
        
        
            dom4j
            dom4j
            1.6.1
        

2、xml文件(contacts.xml)



    
        20
        zavier
        [email protected]
    
    
        20
        china
        [email protected]
    

3、测试代码

package springboot;

import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
import org.junit.Test;

import java.io.File;
import java.io.FileWriter;
import java.util.List;

/**
 * 使用dom4j
 */
public class Dom4jTests {
    // 要操作文本对象,首页就要获取文本对象的路径
    File file = new File("C:/Users/WZX/IdeaProjects/jdbc/src/main/resources/xml/contacts.xml");
    // 获取文档对象
    SAXReader saxReader = new SAXReader();
    // 别引错包了
    org.dom4j.Document dom4jDoc;
    {
        try {
            dom4jDoc = saxReader.read(file);
        } catch (DocumentException e) {
            e.printStackTrace();
        }
    }
    // 获取根元素
    org.dom4j.Element dom4jRoot = dom4jDoc.getRootElement();

    /**
     * 获取所有的联系人
     */
    @Test
    public void testGetAllForDom4j() throws Exception{
        // 获取根元素下的所有元素
        List elementList= dom4jRoot.elements("linkman");
        for (org.dom4j.Element el:elementList
        ) {
            System.out.println(el.attribute("id"));
            System.out.println(el.elementText("name"));
            System.out.println(el.elementText("age"));
            System.out.println(el.elementText("email"));
            System.out.println("---------------------------");
        }
    }

    /**
     * 新增联系人
     * 新增linkman元素,把linkman作为根元素的子元素
     */
    @Test
    public void testAddForDom4j() throws Exception{
        // 添加根元素的子元素
        org.dom4j.Element linkman = dom4jRoot.addElement("linkman").addAttribute("id","05");
        //添加linkman元素的子节点
        linkman.addElement("name").setText("何");
        linkman.addElement("age").setText("25");
        linkman.addElement("email").setText("he@11");
        /*// 第一种同步
        FileWriter fileWriter = new FileWriter(file);
        dom4jDoc.write(fileWriter);
        // 一定要关闭流,不然会把内容变成空白
        fileWriter.close();*/
        // 第二种同步
        // OutputFormat.createCompactFormat():压缩格式,输出成一行
        // OutputFormat.createPrettyPrint():良好的缩进格式
        XMLWriter xmlWriter = new XMLWriter(new FileWriter(file), OutputFormat.createPrettyPrint());
        xmlWriter.write(dom4jDoc);
        xmlWriter.close();
    }
}

 

你可能感兴趣的:(XML)