JAVA DOM 生成xml文件

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/fores_t/article/details/81051695

JAVA DOM 生成xml文件

代码贴上,已经全部注释

package com.dom.parse;

import java.io.File;

import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
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.Document;
import org.w3c.dom.Element;

public class CreateXMLTest {
    public static void main(String[] args) throws ParserConfigurationException, TransformerException {
        //创建一个新的Documetn对象
        Document document =  DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();   
        //创建元素节点    JTree
    /*  <?xml version="1.0" encoding="UTF-8"?>
     * <MAPS>
            <PUBLIC id="123">
                <TRXCODE>86860</TRXCODE>
                <WORKDATE>20080408</WORKDATE>
                <WORKTIME>171030</WORKTIME>
                <ZONENO>01604</ZONENO>
            </PUBLIC>
            <PRIVATE name="hello">
                <NAME>张三</NAME>
                <IDNO>371522196806170234</IDNO>
                <CARDNO>6222021602018802936</CARDNO>
                <AMOUNT>10000</AMOUNT>
                <PAYTYPE>10000</PAYTYPE>
            </PRIVATE>
        </MAPS>*/
        Element MAPS=  document.createElement("MAPS");//根元素
        Element PUBLIC=  document.createElement("PUBLIC");//创建根元素下的子元素PUBLIC
        Element TRXCODE=  document.createElement("TRXCODE");
        Element WORKDATE=  document.createElement("WORKDATE");
        Element WORKTIME=  document.createElement("WORKTIME");
        Element ZONENO=  document.createElement("ZONENO");

        Element PRIVATE=  document.createElement("PRIVATE");//创建根元素下的子元素PRIVATE
        Element NAME=  document.createElement("NAME");
        Element IDNO=  document.createElement("IDNO");
        Element CARDNO=  document.createElement("CARDNO");
        Element AMOUNT=  document.createElement("AMOUNT");
        Element PAYTYPE=  document.createElement("PAYTYPE");
        //建立元素和元素之间的父子关系
        document.appendChild(MAPS);//将MAPS做为根元素
        MAPS.appendChild(PUBLIC);
        MAPS.appendChild(PRIVATE);
        PUBLIC.appendChild(TRXCODE);
        PUBLIC.appendChild(WORKDATE);
        PUBLIC.appendChild(WORKTIME);
        PUBLIC.appendChild(ZONENO);
        //给元素添加属性  1 创建属性对象    2直接通过Element对象的setAttribute方法添加属性
        PUBLIC.setAttribute("id", "123");
        PUBLIC.setAttribute("KDA", "12.78");
        //getTextContent()  setTextContext();
        //给元素添加文本内容
        TRXCODE.setTextContent("86860");
        WORKDATE.setTextContent("20080408");
        WORKTIME.setTextContent("171030");
        ZONENO.setTextContent("01604");
        //建立元素和元素之间的父子关系
        PRIVATE.appendChild(NAME);
        PRIVATE.appendChild(IDNO);
        PRIVATE.appendChild(CARDNO);
        PRIVATE.appendChild(AMOUNT);
        PRIVATE.appendChild(PAYTYPE);
        //给元素添加属性 
        //1 创建属性对象   
        //2直接通过Element对象的setAttribute方法添加属性
        PRIVATE.setAttribute("name", "hello");
        //给元素添加文本内容
        NAME.setTextContent("张三");
        IDNO.setTextContent("371522196806170234");
        CARDNO.setTextContent("6222021602018802936");
        AMOUNT.setTextContent("10000");
        PAYTYPE.setTextContent("10000");
        //<?xml version="1.0" encoding="utf-8"?> 创建XML文档声明部分
        document.setXmlVersion("1.0");
        //给文件转换器设置字符编码
        //trans.setOutputProperty("encoding", “GB2312");
        //定义文档转换器对象
        TransformerFactory tff = TransformerFactory.newInstance();
        Transformer trans = tff.newTransformer();//
        //设置输出属性
        trans.setOutputProperty("encoding", "utf-8");
        //将被变换的Document对象封装到一个DOMSource对象中
        DOMSource domSource = new DOMSource(document);

        StreamResult sr = new StreamResult(new File("new.xml"));
        //调用转换器对象的transform方法将文档转成相应文件或流        
        trans.setOutputProperty(OutputKeys.INDENT, "yes");
        trans.transform(domSource, sr); 
    }
}

猜你喜欢

转载自blog.csdn.net/fores_t/article/details/81051695