用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     }

 

posted @ 2018-10-17 23:22  國仕無雙  阅读(568)  评论(0编辑  收藏  举报