dom4j解析xml配置文件

通过dom4j来对xml配置文件的增删查改;

利用@Test注解来对单个方法进行测试;

 1 import java.io.FileOutputStream;
 2 import java.io.OutputStreamWriter;
 3 import java.util.List;
 4 
 5 import org.dom4j.Document;
 6 import org.dom4j.Element;
 7 import org.dom4j.io.OutputFormat;
 8 import org.dom4j.io.SAXReader;
 9 import org.dom4j.io.XMLWriter;
10 import org.junit.Test;
11 
12 public class Demo2 {
13     String xmlPath = "book.xml";
14     
15     @Test
16     //1.查询第一本书的书名,并输出到控制台
17     public void foo() throws Exception{
18         //创建解析器
19         SAXReader sax = new SAXReader();
20         
21         //开始解析文档
22         Document dom = sax.read(xmlPath);
23         
24         //根元素
25         Element rootElement = dom.getRootElement();
26         
27         //跟元素的所有子元素
28         List elements = rootElement.elements();
29         
30         //跟元素的下一个子元素
31         Element element = rootElement.element("书");
32         
33         //element的下一个子元素
34         Element element2 = element.element("书名");
35         
36         //element2元素的内容
37         String text = element2.getText();
38         
39         System.out.println(text);
40     }
41     
42     
43     //2.给第一本书添加一个特价节点, 并修改第一本书的售价节点的内容为19.8元
44     @Test
45     public void add() throws Exception{
46         //创建解析器
47         SAXReader sax = new SAXReader();
48         
49         //开始解析文档
50         Document dom = sax.read(xmlPath);
51         
52         //获取根元素
53         Element rootElement = dom.getRootElement();
54         
55         //获取第一本书并添加特价节点和节点内容
56         Element bookelem = rootElement.element("书");
57         Element addelement = bookelem.addElement("特价");
58         addelement.setText("9.8元");
59         
60         //写入xml文件,实时更新xml文件
61         OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(xmlPath),"utf-8");
62         OutputFormat format = OutputFormat.createPrettyPrint();
63         XMLWriter writer = new XMLWriter(out,format);
64         //将java代码修改了的dom写到xml文件中
65         writer.write(dom);
66         writer.close();
67     }
68     
69     
70     //3.删除第二本书的作者节点
71     @Test
72     public void delete() throws Exception{
73         //创建解析器
74         SAXReader sax = new SAXReader();
75         //解析文档
76         Document dom = sax.read(xmlPath);
77         //获取跟元素
78         Element rootElement = dom.getRootElement();
79         //获取根目录下的所有子元素
80         List<Element> list = rootElement.elements("书");
81         //获得list中的第二个元素
82         Element author = list.get(1);
83         Element auelement = author.element("作者");
84         //移除list下的第二个元素
85         author.remove(auelement);
86         
87         //写入xml文件,实时更新xml文件
88         OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(xmlPath),"utf-8");
89         OutputFormat format = OutputFormat.createPrettyPrint();
90         XMLWriter writer = new XMLWriter(out,format);
91         //将java代码修改了的dom写到xml文件中
92         writer.write(dom);
93         writer.close();
94         
95     }
96 }
原文地址:https://www.cnblogs.com/tongxuping/p/6837806.html