Posted on 2009-06-19 10:35
周競(jìng)先 閱讀(9930)
評(píng)論(0) 編輯 收藏 所屬分類:
J2EE 、
xml
今天寫另外一份XML發(fā)現(xiàn),內(nèi)容與昨天的不太一樣,故無法用昨天的方法完全實(shí)現(xiàn),注意在添加節(jié)點(diǎn)出有所變動(dòng),稍作修改后,也實(shí)現(xiàn)了.這個(gè)主要用于不對(duì)稱的節(jié)點(diǎn)添加構(gòu)造,代碼如下:
1 package com.potevio.telecom.mobilenet;
2
3 //文件類
4 import java.io.File;
5
6 //文件輸出類
7 import java.io.FileOutputStream;
8
9 //負(fù)責(zé)解析的類
10 import javax.xml.parsers.DocumentBuilder;
11 import javax.xml.parsers.DocumentBuilderFactory;
12 //映射類
13 import javax.xml.transform.Transformer;
14 import javax.xml.transform.TransformerFactory;
15
16 //xml映射輸入和輸出類
17 import javax.xml.transform.dom.DOMSource;
18 import javax.xml.transform.stream.StreamResult;
19
20 //節(jié)點(diǎn)類
21 import org.w3c.dom.Document;
22 import org.w3c.dom.Element;
23
24 /**
25 * @description 使用DOM創(chuàng)建簡(jiǎn)單的XML
26 *
27 * @author Zhou-Jingxian
28 *
29 * @date Jun 19, 2009
30 *
31 */
32 public class CreateRuleXML {
33
34 public static void main(String[] args) {
35
36 try{
37 //解析器工廠類
38 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
39
40 //解析器
41 DocumentBuilder builder = factory.newDocumentBuilder();
42
43 //操作的Document對(duì)象
44 Document document = builder.newDocument();
45
46 //設(shè)置XML的版本
47 document.setXmlVersion("1.0");
48
49 //創(chuàng)建根節(jié)點(diǎn)
50 Element root = document.createElement("MobileNet");
51
52 //將根節(jié)點(diǎn)添加到Document對(duì)象中
53 document.appendChild(root);
54
55 /**the first page*/
56 //設(shè)置第一個(gè)page元素到
57 Element pageElement = document.createElement("page");
58
59 //設(shè)置page節(jié)點(diǎn)的name屬性
60 pageElement.setAttribute("name", "list.jsp");
61
62 /**method*/
63 //設(shè)置method節(jié)點(diǎn)
64 Element methodElement = document.createElement("method");
65
66 //給method設(shè)置值
67 methodElement.setTextContent("get");
68
69 //添加method節(jié)點(diǎn)到page節(jié)點(diǎn)內(nèi)
70 pageElement.appendChild(methodElement);
71
72 /**display*/
73 //設(shè)置method節(jié)點(diǎn)
74 Element displayElement = document.createElement("display");
75
76 //給display設(shè)置值
77 displayElement.setTextContent("list");
78
79 //添加display節(jié)點(diǎn)到page節(jié)點(diǎn)內(nèi)
80 pageElement.appendChild(displayElement);
81
82 /**request_param*/
83 //設(shè)置request_param節(jié)點(diǎn)
84 Element request_paramElement = document.createElement("request_param");
85
86 //給request_param設(shè)置值
87 request_paramElement.setTextContent("request_param1|request_param2");
88
89 //添加request_param節(jié)點(diǎn)到page節(jié)點(diǎn)內(nèi)
90 pageElement.appendChild(request_paramElement);
91
92 //將page段加人根節(jié)點(diǎn)內(nèi)
93 root.appendChild(pageElement);
94
95
96 /**the second page*/
97 //設(shè)置第二個(gè)page元素到
98 pageElement = document.createElement("page");
99
100 //設(shè)置page節(jié)點(diǎn)的name屬性
101 pageElement.setAttribute("name", "content.jsp");
102
103 /**method*/
104 //設(shè)置method節(jié)點(diǎn)
105 methodElement = document.createElement("method");
106
107 //給method設(shè)置值
108 methodElement.setTextContent("post");
109
110 //添加method節(jié)點(diǎn)到page節(jié)點(diǎn)內(nèi)
111 pageElement.appendChild(methodElement);
112
113 /**display*/
114 //設(shè)置method節(jié)點(diǎn)
115 displayElement = document.createElement("display");
116
117 //給display設(shè)置值
118 displayElement.setTextContent("content");
119
120 //添加display節(jié)點(diǎn)到page節(jié)點(diǎn)內(nèi)
121 pageElement.appendChild(displayElement);
122
123 /**url_title*/
124 //設(shè)置url_title節(jié)點(diǎn)
125 Element url_titleElement = document.createElement("url_title");
126
127 //給url_title設(shè)置值
128 url_titleElement.setTextContent("title,publisher,published_calendar");
129
130 //添加url_title節(jié)點(diǎn)到page節(jié)點(diǎn)內(nèi)
131 pageElement.appendChild(url_titleElement);
132
133 //將page段加人根節(jié)點(diǎn)內(nèi)
134 root.appendChild(pageElement);
135
136
137 //開始把Document映射到文件
138 TransformerFactory transFactory = TransformerFactory.newInstance();
139 Transformer transFormer = transFactory.newTransformer();
140
141 //設(shè)置輸出結(jié)果
142 DOMSource domSource = new DOMSource(document);
143
144 //生成xml文件
145 File file = new File("MobileNetRule.xml");
146
147 //判斷是否存在,如果不存在,則創(chuàng)建
148 if(!file.exists()){
149 file.createNewFile();
150 }
151
152 //文件輸出流
153 FileOutputStream out = new FileOutputStream(file);
154
155 //設(shè)置輸入源
156 StreamResult xmlResult = new StreamResult(out);
157
158 //輸出xml文件
159 transFormer.transform(domSource, xmlResult);
160
161 //測(cè)試文件輸出的路徑
162 System.out.println(file.getAbsolutePath());
163
164 }catch(Exception e){
165 e.printStackTrace();
166
167 }finally{
168
169 }
170 }
171
172 }
173
運(yùn)行打印的地址:
D:\MyEclipse 6.0\workspace\WriteAndReadXML\MobileNetRule.xml
將上面的地址輸入到(IE)地址欄,得到如下截圖:
Life,simple and happy!