漂在爪洼岛上

Java is my life,but not all!
posts - 3, comments - 6, trackbacks - 0, articles - 9
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

JAVA利用org.w3c.dom.*;生成XML文件

Posted on 2009-06-19 10:35 周竞先 阅读(9909) 评论(0)  编辑  收藏 所属分类: J2EExml
今天写另外一份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!


只有注册用户登录后才能发表评论。


网站导航: