创建文件
package com.lq.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;
//Dom操作除了可以进行解析之外还可以进行文件的生成
public class dom3{
public static void main(String args[]){
//取得DocumentBuilderFactory类的对象
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
//取得DocumentBuilder类的对象
try {
DocumentBuilder builder = factory.newDocumentBuilder();
//创建一个新的xml文档
Document doc =builder.newDocument();
Element students = doc.createElement("students");
Element student = doc.createElement("student");
Element name = doc.createElement("name");
Element sex = doc.createElement("sex");
Element age = doc.createElement("age");
//设置节点内容
name.appendChild(doc.createTextNode("李伟"));
sex.appendChild(doc.createTextNode("男"));
age.appendChild(doc.createTextNode("23"));
//设置各节点的关系
//将节点name、sex、age设置为student的子节点
student.appendChild(name);
student.appendChild(sex);
student.appendChild(age);
//将student设置为students的子节点
students.appendChild(student);
//设置根节点
doc.appendChild(students);
//将文档内容保存在文件中 实例化传输器工厂
TransformerFactory tf = TransformerFactory.newInstance();
//创建一个具体的传输器
Transformer transformer = tf.newTransformer();
//设置输出编码
transformer.setOutputProperty(OutputKeys.ENCODING, "utf-8");
//准备输出文档
DOMSource source = new DOMSource(doc);
//设置输出的文件地址
StreamResult result = new StreamResult(new File("dom2.xml"));
//文件传输
transformer.transform(source, result);
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (TransformerConfigurationException e) {
e.printStackTrace();
} catch (TransformerException e) {
e.printStackTrace();
}
//对于dom操作既可以读取也可以输出和修改,更多的操作在于读取
}
}