通过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 }