package gao.javaweb.xml;
import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
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 DomDemo01 {
public static void main(String args[]) throws Exception{
//(1)建DocumentBuilderFactory ,用于取得DocumentBuilder
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
//(2)通过DocumentBuilderFactory 取得DocumentBuilder
DocumentBuilder doBuilder=null;
doBuilder = factory.newDocumentBuilder();
//(3)定义Document接口 ,通过DocumentBuilder类进行DOM树的转换操作
Document doc=null;
doc=doBuilder.newDocument(); //新建一个新的文档
//(4) 建立各个操作节点
Element addresslist=doc.createElement("addresslist");
Element linkman=doc.createElement("linkman");
Element name=doc.createElement("name");
Element email=doc.createElement("email");
//(5) 设置节点的内容,即为每个节点添加文本节点
name.appendChild(doc.createTextNode("细雨湿衣"));
email.appendChild(doc.createTextNode("mldn@163.com"));
//(6)设置节点的关系
linkman.appendChild(name);
linkman.appendChild(email);
addresslist.appendChild(linkman);
doc.appendChild(addresslist); //文档上保存节点
//(7) 输出文档到文件中
TransformerFactory tf = TransformerFactory.newInstance();
Transformer t=null;
t=tf.newTransformer();
//设置文件编码
t.setOutputProperty(OutputKeys.ENCODING, "gb2312");
//利用DOMSource输出文档
DOMSource source = new DOMSource(doc);
//指定输出文件位置
StreamResult result=new StreamResult(new File("d:"+File.separator+"XML"+File.separator+"output.xml"));
t.transform(source, result); //输出
}
}