文档章节

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
深圳
程序员
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
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
通过JDBC进行简单的增删改查(以MySQL为例)

前言:什么是JDBC 一、准备工作(一):MySQL安装配置和基础学习 二、准备工作(二):下载数据库对应的jar包并导入 三、JDBC基本操作 (1)定义记录的类(可选) (2)连接的获取 (3)insert (4...

Airship
2015/07/13
0
0
Java 使用 happen-before 规则实现共享变量的同步操作

前言 熟悉 Java 并发编程的都知道,JMM(Java 内存模型) 中的 happen-before(简称 hb)规则,该规则定义了 Java 多线程操作的有序性和可见性,防止了编译器重排序对程序结果的影响。按照官方的...

stateIs0
01/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

FFmpeg Maintainer赵军:FFmpeg关键组件与硬件加速

大家好!我是赵军,现就职于英特尔的DCG从事基于FFmpeg的硬件优化工作,两年多前加入FFmpeg社区,2018年4月成为FFmpeg的其中的一个FFmpeg Maintainer,主要负责FFmpeg的硬件优化工作。 概览:...

yizhichao
15分钟前
0
0
ehlib 修改 使行号字体颜色 与标题字体颜色 一致

对ehlib 显示效果不够满意,而做的调整 修改这个过程:procedure TCustomDBGridEh.DrawIndicatorCell(ACol, ARow: Longint; AreaCol, AreaRow: Longint; ARect: TRect; AState: TGri......

vga
41分钟前
0
0
Bash重定向详解

Bash重定向详解 Bash的重定向指的是将命令的输入和输出导向不同地方,而不是默认的标准输入、标准输出和标准错误。Bash的重定向实际上是对标准输入、标准输出和标准错误的重置,进而将所需输...

小陶小陶
今天
3
0
EventBus原理深度解析

一、问题描述 在工作中,经常会遇见使用异步的方式来发送事件,或者触发另外一个动作:经常用到的框架是MQ(分布式方式通知)。如果是同一个jvm里面通知的话,就可以使用EventBus。由于Event...

yangjianzhou
今天
25
0
OpenCV图像处理实例:libuv+cvui显示摄像头视频

#include <iostream>#include <opencv2/opencv.hpp>#define CVUI_IMPLEMENTATION#include <cvui.h>extern "C"{#include <uv.h>}using namespace std;#define WINDOW_NAM......

IOTService
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部