版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
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);
}
}