dom4j解析xml文档&保存数据的乱码问题

 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 }
View Code
 1 <?xml version="1.0" encoding="UTF-8"?>
 2 
 3 <书架>
 4   <>
 5     <bookname name="zero">java jiuyepeixunjiaocheng</bookname>
 6     <editor>zhangxiaoxiang</editor>
 7     <price>109yuan</price>
 8     <price>209yuan</price>
 9     <price>209yuan</price>
10   </>
11   <>
12     <bookname name="one">javaWebprogramming</bookname>
13     <editor>lihuoming</editor>
14     <price>28.00yuan</price>
15   </>
16 </书架>
View Code

 

posted @ 2014-06-22 18:10  是但哥  阅读(379)  评论(0)    收藏  举报