实现代码
package XML.dom;
import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
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 Practice {
public static void main(String[] args) {
try {
//创建解析器工厂对象
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
//创建解析器的对象
DocumentBuilder db = dbf.newDocumentBuilder();
//创建根结点
Document d = db.newDocument();
if(d != null) {
//创建students标签
Element students = d.createElement("students");
//创建student1标签
Element student1 = d.createElement("student1");
//设置属性
student1.setAttribute("id", "001");
Element name1 = d.createElement("name");
//设置name标签的文本为Tom
name1.appendChild(d.createTextNode("Tom"));
Element gender1 = d.createElement("gender");
gender1.appendChild(d.createTextNode("male"));
Element age1 = d.createElement("age");
age1.appendChild(d.createTextNode("20"));
//创建student2标签
Element student2 = d.createElement("student2");
student2.setAttribute("id", "002");
Element name2 = d.createElement("name");
name2.appendChild(d.createTextNode("Jack"));
Element gender2 = d.createElement("gender");
gender2.appendChild(d.createTextNode("male"));
Element age2= d.createElement("age");
age2.appendChild(d.createTextNode("19"));
//将age挂在student1上
student1.appendChild(name1);
student1.appendChild(gender1);
student1.appendChild(age1);
student2.appendChild(name2);
student2.appendChild(gender2);
student2.appendChild(age2);
students.appendChild(student1);
students.appendChild(student2);
d.appendChild(students);
//创建转换器工厂实例
TransformerFactory tff = TransformerFactory.newInstance();
Transformer tf = tff.newTransformer();
DOMSource source = new DOMSource(d);
//要写入的xml文件
File file = new File("p.xml");
StreamResult result = new StreamResult(file);
//将DOM写入xml文件中
tf.transform(source, result);
System.out.println("write xml file successfully");
}
}catch(Exception e) {
e.printStackTrace();
}
}
}
结果(手动归整)
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<students>
<student1 id="001">
<name>Tom</name>
<gender>male</gender>
<age>20</age>
</student1>
<student2 id="002">
<name>Jack</name>
<gender>male</gender>
<age>19</age>
</student2>
</students>