1、准备工作,引入jar包或者依赖
<!--引入dom4j-->
<!-- https://mvnrepository.com/artifact/dom4j/dom4j -->
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.6.1</version>
</dependency>
2、xml文件(contacts.xml)
<?xml version="1.0" encoding="UTF-8"?>
<contacts>
<linkman>
<age>20</age>
<name>zavier</name>
<email>31@qq.com</email>
</linkman>
<linkman>
<age>20</age>
<name>china</name>
<email>31@qq.com</email>
</linkman>
</contacts>
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<Element> 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();
}
}