Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 991|回复: 2

Java生成xml文件(列车车次表)

[复制链接]
  • TA的每日心情
    开心
    2021-3-12 23:18
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2011-7-26 21:37:06 | 显示全部楼层 |阅读模式
    package com.zhangjie.test;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    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;
    import javax.xml.transform.dom.DOMSource;
    import javax.xml.transform.stream.StreamResult;
    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{
               //构造的原始数据对象
               String train[] = {"T1","K185","Z17"};
               String type[] = {"特快","普快","直达"};
               String startTime[] = {"15:45","11:47","18:10"};
               
               //解析器工厂类
               DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
               
               //解析器
               DocumentBuilder builder = factory.newDocumentBuilder();
               
               //操作的Document对象
               Document document = builder.newDocument();
               
               //设置XML的版本
               document.setXmlVersion("1.0");
               
               //添加注释
               Comment xmlComment = document.createComment("本文档由java学习者总版主测试,望大家支持!");
               
               //将注释添加到xmlS
               document.appendChild(xmlComment);
               
               
               //设置根节点名称
               Element traintimelist= document.createElement("火车时刻表");
               
               //把节点添加到根节点
               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("开车时间"));
                  }
               }
               
               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("开车时间");
               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]));
                  }
               }
               
               //开始把Document映射到文件
               TransformerFactory transFactory = TransformerFactory.newInstance();
               Transformer transformer = transFactory.newTransformer();
               
               //设置输出结果
               DOMSource domSource = new DOMSource(document);
               
               //生成xml文件
               File file = new File("北京到长沙火车时刻表.xml");
               
               //判断是否存在,如果不存在,则创建
               if(!file.exists()){
                  file.createNewFile();
               }
               
               //文件输出流
               FileOutputStream out = new FileOutputStream(file);
               
               //设置输入源
               StreamResult xmlResult = new StreamResult(out);
               
               //输出xml文件
               transformer.transform(domSource, xmlResult);
               
               
               //测试文件输出的路径
               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" ?>
    - <!--
    本文档由java学习者总版主测试,望大家支持!
    -->f(clean);
    - <火车时刻表>
    - <车次 类别="特快">
    <名字>T1</名字>
    <开车时间>15:45</开车时间>
    </车次>
    - <车次 类别="普快">
    <名字>K185</名字>
    <开车时间>11:47</开车时间>
    </车次>
    - <车次 类别="直达">
    <名字>Z17</名字>
    <开车时间>18:10</开车时间>
    </车次>
    </火车时刻表>
    回复

    使用道具 举报

    该用户从未签到

    发表于 2011-8-4 21:23:47 | 显示全部楼层
    不错的帖子。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2011-8-4 21:24:04 | 显示全部楼层
    学习了。。
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-5-8 20:05 , Processed in 0.463883 second(s), 47 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表