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