<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 19, comments - 53, trackbacks - 0, articles - 283
      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    現(xiàn)在應(yīng)用中,有很多方法來(lái)解析xml,多少DOM才是JDK解析xml的根本,這個(gè)是我從網(wǎng)上摘的,不錯(cuò)。

    package com.Gavin.xml;

    //文件類
    import java.io.File;
    import java.io.FileNotFoundException;

    //文件輸出類
    import java.io.FileOutputStream;
    import java.io.IOException;

    //負(fù)責(zé)解析的類
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.ParserConfigurationException;

    //映射類
    import javax.xml.transform.Transformer;
    import javax.xml.transform.TransformerConfigurationException;
    import javax.xml.transform.TransformerException;
    import javax.xml.transform.TransformerFactory;

    //xml映射輸入和輸出類
    import javax.xml.transform.dom.DOMSource;
    import javax.xml.transform.stream.StreamResult;

    //節(jié)點(diǎn)類
    import org.w3c.dom.Comment;
    import org.w3c.dom.Document;
    import org.w3c.dom.Element;
    import org.w3c.dom.Node;
    import org.w3c.dom.NodeList;

    public class CreateXmlContent {
        
    public static void main(String args[]) {
            
    try {
                
    // 構(gòu)造的原始數(shù)據(jù)對(duì)象
                String train[] = "T1次""K185次""Z17次" };
                String type[] 
    = "特快""普快""直達(dá)" };
                String startTime[] 
    = "15:45""11:47""18:10" };

                
    // 解析器工廠類
                DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

                
    // 解析器
                DocumentBuilder builder = factory.newDocumentBuilder();

                
    // 操作的Document對(duì)象
                Document document = builder.newDocument();

                
    // 設(shè)置XML的版本
                document.setXmlVersion("1.0");

                
    // 添加注釋
                Comment xmlComment = document.createComment("本文檔中內(nèi)容主要用于測(cè)試!");

                
    // 將注釋添加到xml中
                document.appendChild(xmlComment);

                
    // 設(shè)置根節(jié)點(diǎn)名稱
                Element traintimelist = document.createElement("火車時(shí)刻表");

                
    // 把節(jié)點(diǎn)添加到根節(jié)點(diǎn)
                document.appendChild(traintimelist);

                
    for (int k = 1; k <= train.length; k++{
                    traintimelist.appendChild(document.createElement(
    "車次"));
                }


                NodeList nodeList 
    = document.getElementsByTagName("車次");
                
    int size = nodeList.getLength();
                
    for (int k = 0; k < size; k++{
                    Node node 
    = nodeList.item(k);
                    
    if (node.getNodeType() == Node.ELEMENT_NODE) {
                        Element elementNode 
    = (Element) node;
                        elementNode.setAttribute(
    "類別", type[k]);
                        elementNode.appendChild(document.createElement(
    "名字"));
                        elementNode.appendChild(document.createElement(
    "開(kāi)車時(shí)間"));

                    }

                }


                nodeList 
    = document.getElementsByTagName("名字");
                size 
    = nodeList.getLength();
                
    for (int k = 0; k < size; k++{
                    Node node 
    = nodeList.item(k);
                    
    if (node.getNodeType() == Node.ELEMENT_NODE) {
                        Element elementNode 
    = (Element) node;
                        elementNode.appendChild(document.createTextNode(train[k]));

                    }

                }


                nodeList 
    = document.getElementsByTagName("開(kāi)車時(shí)間");
                size 
    = nodeList.getLength();
                
    for (int k = 0; k < size; k++{
                    Node node 
    = nodeList.item(k);
                    
    if (node.getNodeType() == Node.ELEMENT_NODE) {
                        Element elementNode 
    = (Element) node;
                        elementNode.appendChild(document
                                .createTextNode(startTime[k]));

                    }

                }

                
    // 開(kāi)始把Document映射到文件
                TransformerFactory transFactory = TransformerFactory.newInstance();
                Transformer transformer 
    = transFactory.newTransformer();
                
    // 設(shè)置輸出結(jié)果
                DOMSource domSource = new DOMSource(document);
                
    // 生成xml文件
                File file = new File("北京到長(zhǎng)沙火車時(shí)刻表.xml");

                
    // 判斷是否存在,如果不存在,則創(chuàng)建
                if (!file.exists()) {
                    file.createNewFile();
                }

                
    // 文件輸出流
                FileOutputStream out = new FileOutputStream(file);
                
    // 設(shè)置輸入源
                StreamResult xmlResult = new StreamResult(out);
                
    // 輸出xml文件
                transformer.transform(domSource, xmlResult);
                
    // 測(cè)試文件輸出的路徑
                System.out.println(file.getAbsolutePath());
            }
     catch (ParserConfigurationException e) {
                e.printStackTrace();
            }
     catch (TransformerConfigurationException e) {
                e.printStackTrace();
            }
     catch (FileNotFoundException e) {
                e.printStackTrace();
            }
     catch (TransformerException e) {
                e.printStackTrace();
            }
     catch (IOException e) {
                e.printStackTrace();

            }
     finally {

            }


        }

    }


    xml:
     <?xml version="1.0" encoding="UTF-8" ?> 
    <!-- 本文檔中內(nèi)容主要用于測(cè)試!
      
    --> 
    <火車時(shí)刻表>
    <車次 類別="特快">
      
    <名字>T1次</名字> 
      
    <開(kāi)車時(shí)間>15:45</開(kāi)車時(shí)間> 
      
    </車次>
    <車次 類別="普快">
      
    <名字>K185次</名字> 
      
    <開(kāi)車時(shí)間>11:47</開(kāi)車時(shí)間> 
      
    </車次>
    <車次 類別="直達(dá)">
      
    <名字>Z17次</名字> 
      
    <開(kāi)車時(shí)間>18:10</開(kāi)車時(shí)間> 
      
    </車次>
      
    </火車時(shí)刻表>

    評(píng)論

    # re: Dom 生成xml --http://www.w3school.com.cn/xmldom/xmldom_reference.asp (dom手冊(cè))  回復(fù)  更多評(píng)論   

    2012-11-16 07:53 by W3School
    http://www.w3school.org.cn/xmldom/xmldom_reference.asp
    主站蜘蛛池模板: 69视频免费观看l| 日本不卡免费新一区二区三区| 爱情岛论坛免费视频| 一级片在线免费看| 久久青草精品38国产免费| 国产福利视精品永久免费| 啦啦啦手机完整免费高清观看| 亚洲精品无码成人片在线观看 | 怡红院亚洲怡红院首页| 亚洲国产天堂在线观看| 亚洲ts人妖网站| 免费人成再在线观看网站 | 久久免费福利视频| 最近2019中文字幕免费看最新| 免费一级毛片不卡不收费| 亚洲国产精品成人精品无码区| 亚洲精品无码久久毛片波多野吉衣| 亚洲人成色777777精品| 成人无码区免费A∨直播| 114级毛片免费观看| 国产乱人免费视频| 亚洲高清中文字幕| 色屁屁在线观看视频免费| 性xxxx视频免费播放直播| 日韩中文字幕在线免费观看| 亚洲精品国产品国语在线| 中中文字幕亚洲无线码| 亚洲一区二区三区免费| 麻豆一区二区免费播放网站| 亚洲av无码专区在线观看素人| 久久99亚洲网美利坚合众国| 羞羞视频在线免费观看| 在线观看www日本免费网站| 亚洲午夜福利精品无码| 亚洲欧洲无码一区二区三区| 国产日韩AV免费无码一区二区| 成年女人毛片免费播放视频m| 亚洲va国产va天堂va久久| 亚洲AV无码专区在线厂| 亚洲免费在线视频播放| 精品国产香蕉伊思人在线在线亚洲一区二区 |