DOM写入XML文件步骤如下:
import java.io.File;
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;
public class XMLWriterTest {
public static void main(String[] args) {
//1.建立DocumentBuilderFactory
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
//2.建立DocumentBuilder
DocumentBuilder builder= null;
try {
builder= factory.newDocumentBuilder();
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//3.建立Document接口对象
Document doc = null;
doc=builder.newDocument();
//4.建立各个操作节点
Element addresslist = doc.createElement("addresslist");
Element linkman = doc.createElement("linkman");
Element name = doc.createElement("name");
Element tel = doc.createElement("tel");
//5.设置节点的文本内容,即为每一个节点创建已给文本节点
name.appendChild(doc.createTextNode("张大大"));//如果是存在多个name,这个问题如何解决???
tel.appendChild(doc.createTextNode("09876"));
//6.设置节点的关系(从叶子节点开始设置关系)
linkman.appendChild(name);
linkman.appendChild(tel);
addresslist.appendChild(linkman);
doc.appendChild(addresslist);//文档上保存节点
//7.输出文档的内容
/**
* TransformerFactory-->Transformer(设置编码,transform转换source->result)
* DOMSource source = new DOMSource(doc) 输出文档
* StreamResult result = new StreamResult(new File("d:"+File.separator+"345.xml")) 指定输出位置
*/
TransformerFactory tf = TransformerFactory.newInstance(); //创建TransformerFactory
Transformer t = null;
try {
t = tf.newTransformer();//创建Transformer
} catch (TransformerConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
t.setOutputProperty(OutputKeys.ENCODING, "utf-8");//设置编码
DOMSource source = new DOMSource(doc); //输出文档
StreamResult result = new StreamResult(new File("d:"+File.separator+"345.xml"));//指定输出位置
try {
t.transform(source, result);//输出
} catch (TransformerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}