Dom4j向XML中增加節點與屬性——(四)


先獲取到節點,然后在節點山添加Element
添加節點 添加屬性 設置開始標簽與結束標簽的值

book.addElement("描述").addAttribute("name", "xxxxxx").setText("一本好書!");

解決中文亂碼問題:

  輸出流最好用字節流(Stream),字節流可以控制編碼格式,Writer是字符流。

  如果xml中編碼是utf-8,格式器也用utf-8。格式器與xml文檔的編碼格式要一致。

 

 1 package Dom4j_XMLParser;
 2 
 3 import java.io.File;
 4 import java.io.FileOutputStream;
 5 import java.io.FileWriter;
 6 
 7 import org.dom4j.Attribute;
 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 Demo2 {
17 
18     // 在第一本書后增加一個 <描述 name="xxxxxx">一本好書!</描述>
19     @Test
20     public void test1() throws Exception {
21         // 創建SAX讀取器
22         SAXReader reader = new SAXReader();
23         // 加載文檔
24         Document document = reader.read(new File("src/book.xml"));
25         // 獲取根節點(書架)
26         Element root = document.getRootElement();
27         // 獲取根節點下的書節點,帶s返回一個數組,再取數組的第二個
28         Element book = (Element) root.elements("書").get(0);
29         // 獲取樹下面的書名屬性
30         book.addElement("描述").addAttribute("name", "xxxxxx").setText("一本好書!");
31 
32 //        格式化輸出流,同時指定編碼格式。也可以在FileOutputStream中指定。
33         OutputFormat format = OutputFormat.createPrettyPrint();
34         format.setEncoding("utf-8");
35 
36         XMLWriter writer = new XMLWriter(new FileOutputStream("src/book.xml"),format);
37         writer.write(document);
38         writer.close();
39     }
40 
41 }

結果:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM