漂在爪洼島上

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

          日歷

          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          隨筆分類

          隨筆檔案

          新聞檔案

          我的連接

          搜索

          •  

          最新評論

          java構造XML文檔(有規律的節點)

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

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

            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 //負責解析的類
           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 //節點類
           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 構造一個北京到長沙的簡單列車時刻表.用DOM的方式實現.
           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             //構造的原始數據對象
           47             String train[] = {"T1次","K185次","Z17次"};
           48             String type[] = {"特快","普快","直達"};
           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             //設置XML的版本
           61             document.setXmlVersion("1.0");
           62             
           63             //添加注釋
           64             Comment xmlComment = document.createComment("本文檔中內容主要用于測試!");
           65             
           66             //將注釋添加到xml中
           67             document.appendChild(xmlComment);
           68             
           69             //設置根節點名稱
           70             Element traintimelist = document.createElement("火車時刻表");
           71             
           72             //把節點添加到根節點
           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("開車時間"));
           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("開車時間");
          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             //設置輸出結果
          119             DOMSource domSource = new DOMSource(document);
          120             
          121             //生成xml文件
          122             File file = new File("北京到長沙火車時刻表.xml");
          123             
          124             //判斷是否存在,如果不存在,則創建
          125             if(!file.exists()){
          126                 file.createNewFile();
          127             }
          128             
          129             //文件輸出流
          130             FileOutputStream out = new FileOutputStream(file);
          131             
          132             //設置輸入源
          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 

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

          Life,simple and happy!

          主站蜘蛛池模板: 赤壁市| 仪陇县| 洮南市| 安泽县| 沂源县| 汽车| 白玉县| 延边| 遂昌县| 邯郸市| 扶绥县| 昌宁县| 忻城县| 蓬安县| 南宁市| 孟州市| 海盐县| 松溪县| 廊坊市| 八宿县| 石首市| 调兵山市| 二连浩特市| 三河市| 延川县| 景德镇市| 凉山| 东兰县| 大厂| 梁山县| 白河县| 太湖县| 那坡县| 白朗县| 石林| 芷江| 图木舒克市| 灌南县| 双鸭山市| 南康市| 闽清县|