1 package itcast.dom4j;
2
3 import java.io.File;
4 import java.io.FileOutputStream;
5 import java.io.FileWriter;
6 import java.io.IOException;
7
8 import org.dom4j.Document;
9 import org.dom4j.DocumentException;
10 import org.dom4j.Element;
11 import org.dom4j.io.OutputFormat;
12 import org.dom4j.io.SAXReader;
13 import org.dom4j.io.XMLWriter;
14 import org.junit.Test;
15
16 public class Demo {
17
18 //读取xml文档第二本书的:<bookname>XXXX</bookname>
19 @Test
20 public void read() throws Exception{
21 SAXReader reader = new SAXReader();
22 Document document = reader.read(new File("src/book.xml"));
23
24 Element root = document.getRootElement();
25 Element book = (Element) root.elements().get(1);
26 String value = book.element("bookname").getText();
27
28 System.out.println(value);
29 }
30
31 @Test
32 public void readAttr() throws Exception{
33 SAXReader reader = new SAXReader();
34 Document document = reader.read(new File("src/book.xml"));
35
36 Element root = document.getRootElement();
37 Element book = (Element) root.elements().get(1);
38 String value = book.element("bookname").attributeValue("name");
39
40 System.out.println(value);
41 }
42
43 //在第一本书上添加一个新的售价:<price>209yuan</price>
44 @Test
45 public void add() throws Exception{
46 SAXReader reader = new SAXReader();
47 Document document = reader.read(new File("src/book.xml"));
48
49 Element book = document.getRootElement().element("书");
50 book.addElement("price").setText("209yuan");
51
52 OutputFormat format = OutputFormat.createPrettyPrint();
53 format.setEncoding("UTF-8");
54
55 XMLWriter writer = new XMLWriter(new FileOutputStream("src/book.xml"),format);
56 writer.write(document);
57 writer.close();
58 }
59
60 }