Posted on 2009-06-19 10:35
周竞先 阅读(9909)
评论(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!