文档章节

Java 内置XML写入操作简易教程

最爱肉肉
 最爱肉肉
发布于 2016/10/04 16:27
字数 326
阅读 5
收藏 0

1.写入XML文件

package com.pan.xml;

import org.w3c.dom.Document;
import org.w3c.dom.Element;

import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import java.io.File;
import java.io.IOException;
import java.io.StringWriter;

/**
 * Created by pan on 2016/10/4.
 */
public class WriteXML {


    /**
     * 生成document
     */
    private Document formatXML() {
        try {
            Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
            document.setXmlVersion("1.0");

            //XML的element
            Element root = document.createElement("root");
            root.setAttribute("rt", "ro");
            //名字节点
            Element name = document.createElement("name");
            name.setTextContent("小花");

            //年龄节点
            Element age = document.createElement("age");
            age.setAttribute("color", "red");

            //添加到root
            root.appendChild(name);
            root.appendChild(age);

            //添加到document
            document.appendChild(root);
            return document;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }

    }


    /**
     * 将document写入XML文件
     */
    void write(File out) {
        //如果文件不存在,新建
        if (!out.exists()) {
            try {
                out.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        //写入定义好的document
        try {
            Transformer transformer = TransformerFactory.newInstance().newTransformer();
            //设置编码方式
            transformer.setParameter("encoding", "utf-8");
            //转换成DOM资源
            DOMSource domSource = new DOMSource(formatXML());
            StreamResult streamResult = new StreamResult(out);
            //写入
            transformer.transform(domSource, streamResult);
            //输出到控制台
            StringWriter writer = new StringWriter();
            streamResult = new StreamResult(writer);
            transformer.transform(domSource, streamResult);
            System.out.println(writer.toString());
        } catch (Exception e) {
            e.printStackTrace();
        }


    }
}

2.测试方法:

package com.pan.xml;

import java.io.File;
import java.io.IOException;

/**
 * Created by pan on 2016/10/4.
 */
public class Main {


    public static void main(String[] args) {
//        File file = new File("src/com/pan/xml/test.xml") ;
//        //读取xml文件
//        new ReadXML().read(file);

        File file = new File("src/com/pan/xml/test_new.xml");
        //写入
        new WriteXML().write(file);
    }


}

3.输出结果:

控制台:

<?xml version="1.0" encoding="UTF-8" standalone="no"?><root rt="ro"><name>小花</name><age color="red"/></root>

Process finished with exit code 0

文件:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<root rt="ro">
    <name>小花</name>
    <age color="red"/>
</root>

 

© 著作权归作者所有

共有 人打赏支持
最爱肉肉
粉丝 4
博文 53
码字总数 37271
作品 0
深圳
程序员
私信 提问
Java NIO AsynchronousFileChannel

原文链接 , 原文作者:Jakob Jenkov, 翻译:Neil Hao 在Java 7,AsynchronousFileChannel 被添加到了Java NIO中。使用AsynchronousFileChannel可以实现异步地读取和写入文件数据。 创建一个A...

Neil_Hao
2018/01/20
0
0
Spring 3.0 版本已接近尾声,即将发布

Spring 3.0 版本已接近完成,将提供Java开发新的功能,快速地开发应用。 SpringSource首席执行官罗德约翰逊将在本周美国旧金山的 JavaOne 会议期间详细介绍其新的功能。 Spring Framework 是...

红薯
2009/06/03
2.3K
3
10 个最受欢迎的 Java 开发的 CMS 系统

转于:http://www.oschina.net/news/32888/10-most-popular-java-based-cms CMS是Content Management System的缩写,意为"内容管理系统",它具有许多基于模板的优秀设计,可以加快网站开发的...

stamen
2015/08/19
0
0
10 个最受欢迎的 Java 开发的 CMS 系统

CMS是Content Management System的缩写,意为"内容管理系统",它具有许多基于模板的优秀设计,可以加快网站开发的速度和减少开发的成本。CMS的功能并不只限于文本处理,它也可以处理图片、F...

oschina
2012/09/14
132.2K
35
google protobuf3简易教程

版权声明:本文为博主原创文章,欢迎大家讨论,未经博主允许不得转载. https://blog.csdn.net/u010398771/article/details/82077915 google 的 protobuf 一个及其快速,以及好用的序列化框架,支...

长河
2018/08/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

乱入Linux界的我是如何学习的

欢迎来到建哥学Linux,咳!咳!咳!开个玩笑哈,我是一个IT男,IT界的入门选手,正在学习Linux。 在之前,一直想进军IT界,学习IT技术,但是苦于没有人指导,也不知道学什么,最开始我自己在...

linuxCool
39分钟前
1
0
携程Apollo统一配置中心的搭建和使用(java)

一.Apollo配置中心介绍 1、What is Apollo 1.1 Apollo简介 Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到...

morpheusWB
59分钟前
1
0
远程获得的有趣的linux命令

使用这些工具从远程了解天气、阅读资料等。 我们即将结束为期 24 天的 Linux 命令行玩具日历。希望你有一直在看,如果没有,请回到开始,从头看过来。你会发现 Linux 终端有很多游戏、消遣和...

Linux就该这么学
今天
6
0
聊聊flink的AsyncWaitOperator

序 本文主要研究一下flink的AsyncWaitOperator AsyncWaitOperator flink-streaming-java_2.11-1.7.0-sources.jar!/org/apache/flink/streaming/api/operators/async/AsyncWaitOperator.java ......

go4it
今天
5
0
Java并发编程基础(四)

ThreadGroup 在主线程创建得线程,如果没有给他指定线程组,那么创建的线程,默认和主线程同一个线程组。线程组可以底下可以是线程,也可以实线程组。 构建线程组的方法: private ThreadGr...

chendom
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部