漂在爪洼島上

          Java is my life,but not all!
          posts - 3, comments - 6, trackbacks - 0, articles - 9
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          java構(gòu)造XML文檔(有規(guī)律的節(jié)點(diǎn))

          Posted on 2009-06-19 09:10 周競先 閱讀(1582) 評論(0)  編輯  收藏 所屬分類: J2EExml

          很久沒用xml了,最近項(xiàng)目應(yīng)該會用到,故昨晚回家寫了個測試程序,代碼如下:

            1 package com.potevio.telecom;
            2 
            3 //文件類
            4 import java.io.File;
            5 import java.io.FileNotFoundException;
            6 
            7 //文件輸出類
            8 import java.io.FileOutputStream;
            9 import java.io.IOException;
           10 
           11 //負(fù)責(zé)解析的類
           12 import javax.xml.parsers.DocumentBuilder;
           13 import javax.xml.parsers.DocumentBuilderFactory;
           14 import javax.xml.parsers.ParserConfigurationException;
           15 
           16 //映射類
           17 import javax.xml.transform.Transformer;
           18 import javax.xml.transform.TransformerConfigurationException;
           19 import javax.xml.transform.TransformerException;
           20 import javax.xml.transform.TransformerFactory;
           21 
           22 //xml映射輸入和輸出類
           23 import javax.xml.transform.dom.DOMSource;
           24 import javax.xml.transform.stream.StreamResult;
           25 
           26 //節(jié)點(diǎn)類
           27 import org.w3c.dom.Comment;
           28 import org.w3c.dom.Document;
           29 import org.w3c.dom.Element;
           30 import org.w3c.dom.Node;
           31 import org.w3c.dom.NodeList;
           32 
           33 /**
           34  * @description 構(gòu)造一個北京到長沙的簡單列車時(shí)刻表.用DOM的方式實(shí)現(xiàn).
           35  * 
           36  * @author Zhou-Jingxian
           37  * 
           38  * @date Jun 18, 2009
           39  *
           40  */
           41 public class CreateXMLContent {
           42     
           43     public static void main(String args[]){
           44         
           45         try {
           46             //構(gòu)造的原始數(shù)據(jù)對象
           47             String train[] = {"T1次","K185次","Z17次"};
           48             String type[] = {"特快","普快","直達(dá)"};
           49             String startTime[] = {"15:45","11:47","18:10"};
           50             
           51             //解析器工廠類
           52             DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
           53             
           54             //解析器
           55             DocumentBuilder builder = factory.newDocumentBuilder();
           56             
           57             //操作的Document對象
           58             Document document = builder.newDocument();
           59             
           60             //設(shè)置XML的版本
           61             document.setXmlVersion("1.0");
           62             
           63             //添加注釋
           64             Comment xmlComment = document.createComment("本文檔中內(nèi)容主要用于測試!");
           65             
           66             //將注釋添加到xml中
           67             document.appendChild(xmlComment);
           68             
           69             //設(shè)置根節(jié)點(diǎn)名稱
           70             Element traintimelist = document.createElement("火車時(shí)刻表");
           71             
           72             //把節(jié)點(diǎn)添加到根節(jié)點(diǎn)
           73             document.appendChild(traintimelist);
           74             
           75             for(int k = 1; k <=train.length; k++){
           76                 traintimelist.appendChild(document.createElement("車次"));
           77             }
           78             
           79             NodeList nodeList = document.getElementsByTagName("車次");
           80             int size = nodeList.getLength();
           81             for(int k = 0; k<size; k++){
           82                 Node node = nodeList.item(k);
           83                 if(node.getNodeType() == Node.ELEMENT_NODE){
           84                     Element elementNode = (Element)node;
           85                     elementNode.setAttribute("類別", type[k]);
           86                     elementNode.appendChild(document.createElement("名字"));
           87                     elementNode.appendChild(document.createElement("開車時(shí)間"));
           88                     
           89                 }
           90             }
           91             
           92             nodeList = document.getElementsByTagName("名字");
           93             size = nodeList.getLength();
           94             for(int k = 0; k<size; k++){
           95                 Node node = nodeList.item(k);
           96                 if(node.getNodeType() == Node.ELEMENT_NODE){
           97                     Element elementNode = (Element)node;
           98                     elementNode.appendChild(document.createTextNode(train[k]));
           99                     
          100                 }
          101             }
          102             
          103             nodeList = document.getElementsByTagName("開車時(shí)間");
          104             size = nodeList.getLength();
          105             for(int k = 0; k<size; k++){
          106                 Node node = nodeList.item(k);
          107                 if(node.getNodeType() == Node.ELEMENT_NODE){
          108                     Element elementNode = (Element)node;
          109                     elementNode.appendChild(document.createTextNode(startTime[k]));
          110                     
          111                 }
          112             }
          113             
          114             //開始把Document映射到文件
          115             TransformerFactory transFactory = TransformerFactory.newInstance();
          116             Transformer transformer = transFactory.newTransformer();
          117             
          118             //設(shè)置輸出結(jié)果
          119             DOMSource domSource = new DOMSource(document);
          120             
          121             //生成xml文件
          122             File file = new File("北京到長沙火車時(shí)刻表.xml");
          123             
          124             //判斷是否存在,如果不存在,則創(chuàng)建
          125             if(!file.exists()){
          126                 file.createNewFile();
          127             }
          128             
          129             //文件輸出流
          130             FileOutputStream out = new FileOutputStream(file);
          131             
          132             //設(shè)置輸入源
          133             StreamResult xmlResult = new StreamResult(out);
          134             
          135             //輸出xml文件
          136             transformer.transform(domSource, xmlResult);
          137             
          138             //測試文件輸出的路徑
          139             System.out.println(file.getAbsolutePath());
          140             
          141         } catch (ParserConfigurationException e) {
          142             
          143             e.printStackTrace();
          144         } catch (TransformerConfigurationException e) {
          145             
          146             e.printStackTrace();
          147         } catch (FileNotFoundException e) {
          148             
          149             e.printStackTrace();
          150         } catch (TransformerException e) {
          151             
          152             e.printStackTrace();
          153         } catch (IOException e) {
          154             
          155             e.printStackTrace();
          156             
          157         }finally{
          158             
          159         }
          160         
          161     }
          162 }
          163 

          運(yùn)行的打印地址:
          D:\MyEclipse 6.0\workspace\WriteAndReadXML\北京到長沙火車時(shí)刻表.xml
          將上面的地址放到(IE)地址欄顯示的效果圖下:
          xml在IE效果圖

          Life,simple and happy!

          主站蜘蛛池模板: 钟山县| 遂川县| 杨浦区| 云浮市| 合肥市| 大余县| 思茅市| 白城市| 商城县| 白水县| 山阴县| 柞水县| 渭源县| 朝阳市| 顺平县| 分宜县| 文登市| 郑州市| 康平县| 宣城市| 禹城市| 潢川县| 山西省| 葵青区| 库车县| 普定县| 南安市| 宁安市| 延川县| 新津县| 历史| 绥德县| 准格尔旗| 辽宁省| 浦北县| 平遥县| 黑龙江省| 灯塔市| 宿迁市| 扶绥县| 聂荣县|