1. 程式人生 > >用JDOM解析XML檔案時如何解決中文問題?如何解析?

用JDOM解析XML檔案時如何解決中文問題?如何解析?

 1 import javax.xml.parsers.DocumentBuilder;
 2 import javax.xml.parsers.DocumentBuilderFactory;
 3 import javax.xml.transform.OutputKeys;
 4 import javax.xml.transform.Transformer;
 5 import javax.xml.transform.TransformerFactory;
 6 import javax.xml.transform.dom.DOMSource;
 7 import javax.xml.transform.stream.StreamResult;
8 9 import org.w3c.dom.Document; 10 import org.w3c.dom.Element; 11 12 public class DOMTest { 13 private String inFile = "D:\\test.xml"; 14 private String outFile = "D:\\test.xml"; 15 16 public static void main(String[] args) { 17 new DOMTest(); 18 } 19 20 public DOMTest() {
21 try { 22 //1、獲取DOM解析器工廠,以便產生解析器;2、獲取DOM解析器,以便解析DOM 23 DocumentBuilder builder = DocumentBuilderFactory 24 .newInstance().newDocumentBuilder(); 25 Document doc = builder.newDocument(); 26 //建立元素 27 Element root = doc.createElement("person");
28 Element a = doc.createElement("name"); 29 Element b = doc.createElement("age"); 30 //向指定元素節點中增加子元素節點或增加元素到子節點 31 a.appendChild(doc.createTextNode("小白")); 32 b.appendChild(doc.createTextNode("18歲")); 33 root.appendChild(a); 34 root.appendChild(b); 35 doc.appendChild(root); 36 //設定後要把DOM寫回XML檔案 37 Transformer transformer = TransformerFactory 38 .newInstance().newTransformer(); 39 //編碼指定Transformer應該使用的首選字元編碼,將字元序列作為位元組序列進行編碼 40 transformer.setOutputProperty(OutputKeys.ENCODING, "gb2312"); 41 //縮排指定Transformer是否可以新增額外的空白,同時輸出 42 transformer.setOutputProperty(OutputKeys.INDENT, "yes"); 43 transformer.transform(new DOMSource(doc), new StreamResult(outFile)); 44 } catch (Exception e) { 45 System.out.println(e.getMessage()); 46 } 47 }