import java.io.File;
import java.io.PrintWriter;
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.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 CreateXML {
/**
* @param args
* @throws Exception
* @throws ParserConfigurationException
*/
public static void main(String[] args) throws ParserConfigurationException, Exception {
// TODO Auto-generated method stub
//创建xml文件并选择输出路径
createXML("D:\\employees.xml");
}
static Document document = null;
static void createXML(String filename) throws ParserConfigurationException, Exception{
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
document = documentBuilder.newDocument();
//创建根节点
Element root = document.createElement("employees");
document.appendChild(root);
Element employee = document.createElement("employee");
Element name = document.createElement("name");
//textNode只有document能创建
name.appendChild(document.createTextNode("阿黄"));
employee.appendChild(name);
//创建子节点
Element sex = document.createElement("sex");
sex.appendChild(document.createTextNode("不男不女"));
employee.appendChild(sex);
Element age =document.createElement("age");
age.appendChild(document.createTextNode("13"));
employee.appendChild(age);
root.appendChild(employee);
TransformerFactory tf = TransformerFactory.newInstance();
Transformer transformer = tf.newTransformer();
DOMSource source = new DOMSource(document);
//设置编码格式
transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
//缩进指定是否可能增加额外的空格当输出结果树,这个值必须是或不是
transformer.setOutputProperty(OutputKeys.INDENT,"yes");
PrintWriter pw = new PrintWriter(new File(filename));
StreamResult streamResult = new StreamResult(pw);
transformer.transform(source,streamResult);
}
}