文档章节

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

最爱肉肉
 最爱肉肉
发布于 2016/10/04 16:27
字数 326
阅读 4
收藏 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>

 

© 著作权归作者所有

共有 人打赏支持
最爱肉肉
粉丝 3
博文 52
码字总数 35131
作品 0
深圳
程序员
私信 提问
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
Java NIO AsynchronousFileChannel

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

Neil_Hao
01/20
0
0
google protobuf3简易教程

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

长河
08/26
0
0
通过 HttpAuthenticationMechanism 执行 Web 身份验证

通过 Java EE 8 中新的注解驱动的 HTTP 身份验证机制执行经典和自定义的 Servlet 身份验证 系列内容: 此内容是该系列 4 部分中的第 # 部分: Java EE 8 Security API 入门,第 2 部分 http...

Alex Theedom
04/02
0
0
Java 编程之美:并发编程基础晋级篇

本文来自作者 加多 在 GitChat 上分享 「Java 并发编程之美:并发编程基础晋级篇」 编辑 | Mc Jin 借用 Java 并发编程实践中的话,编写正确的程序并不容易,而编写正常的并发程序就更难了! ...

gitchat
04/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

降压变换器 Buck

特点 输入输出极性相同。 工作过程 在 MOS 导通时,输入电源通过 L 和 C 滤波后向负载端提供电流;当 MOS 断开后,L 通过二极管续流,保持负载电流连续。输出电压因为占空比的作用,不会超过...

colinux
38分钟前
0
0
Apache日志不记录访问静态文件,访问日志切割,静态元素过期时间设置

Apache配置不记录访问静态文件的日志 网站大多元素为静态文件,如图片、css、js等,这些元素可以不用记录 vhost原始配置 <VirtualHost *:80> ServerAdmin test@163.com DocumentRoo...

野雪球
今天
3
0
聊聊storm的ICommitterTridentSpout

序 本文主要研究一下storm的ICommitterTridentSpout ICommitterTridentSpout storm-core-1.2.2-sources.jar!/org/apache/storm/trident/spout/ICommitterTridentSpout.java public interface......

go4it
今天
4
0
Ubuntu常用操作

查看端口号 netstat -anp |grep 端口号 查看已使用端口情况 netstat -nultp(此处不用加端口号) netstat -anp |grep 82查看82端口的使用情况 查找被占用的端口: netstat -tln netstat -tl...

hc321
昨天
3
0
网站cdn的静态资源突然访问变的缓慢,问题排查流程

1.首先我查看了一下是否自己的网络问题,通过对比其他资源的访问速度和下载速度,确认不是 2.通过ping 和 tracert 判断cdn域名能否正常访问,(最后回想感觉这一步可以省略,因为每次最终能访...

小海bug
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部