JDOM写入XML文件


package com.gyj.jdom;

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


/**
* 写入DOM到XML文件
* @author GYJ
* @date 2014-3-23
*/
public class XMLWriterDOM {

/**
* 将会写入这么一份文件
* <p>1、根元素为"Employees" , 命名空间为"http://www.miamiheat.com"
* 2、创建两份员工,都有id属性
* 3、内容都有姓名、年龄、角色
* 4、写出数据到文件、打印到控制台
* @param args
* @throws TransformerException
*/
public static void main(String[] args) throws TransformerException {
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder;
try {
dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.newDocument();
//添加根元素
Element rootElement = doc.createElementNS("http://www.miamiheat.com", "Employees");
doc.appendChild(rootElement);
//添加子元素到根目录下
rootElement.appendChild(getEmployee(doc, "1", "gyj", "18"));
rootElement.appendChild(getEmployee(doc, "2", "james", "29"));
//把创建好的文件输出
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
DOMSource domSource = new DOMSource(doc);

//控制台输出
StreamResult console = new StreamResult(System.out);
//输出到文件
StreamResult file = new StreamResult("emp.xml");
//写数据
transformer.transform(domSource, console);
transformer.transform(domSource, file);
} catch (ParserConfigurationException e) {
e.printStackTrace();
}

//out put==============================================
/*<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Employees xmlns="http://www.miamiheat.com">
<employee id="1">
<name>gyj</name>
<age>18</age>
</employee>
<employee id="2">
<name>james</name>
<age>29</age>
</employee>
</Employees>*/
//======================================================
//生成了emp.xml
/*<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Employees xmlns="http://www.miamiheat.com">
<employee id="1">
<name>gyj</name>
<age>18</age>
</employee>
<employee id="2">
<name>james</name>
<age>29</age>
</employee>
</Employees>*/



}

private static Node getEmployee(Document doc, String id, String name, String age) {
//创建子节点
Element employee = doc.createElement("employee");
employee.setAttribute("id", id);
//创建字节点的元素
employee.appendChild(getEmployeeElements(doc, employee, "name", name));
employee.appendChild(getEmployeeElements(doc, employee, "age", age));
return employee;
}

/**
* 创建子元素节点
* @param doc 文档对象
* @param element 子元素的tag
* @param name 子元素节点
* @param value 子元素节点值
* @return
*/
private static Node getEmployeeElements(Document doc, Element element, String name, String value) {
Element node = doc.createElement(name);
node.appendChild(doc.createTextNode(value));
return node;
}


}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值