Java 内置XML写入操作简易教程
Java 内置XML写入操作简易教程
最爱肉肉 发表于1年前
Java 内置XML写入操作简易教程
  • 发表于 1年前
  • 阅读 3
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

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
博文 44
码字总数 34256
×
最爱肉肉
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: