java创建xml结构的数据
Easul Lv6
JAVA
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
import java.io.File;
import java.io.StringWriter;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
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 XMLCreator {
public void create() {
//创建一个新的 DocumentBuilderFactory,
//使用静态方法调用 newInstance()方法,创建一个新的实例
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();

try {
DocumentBuilder builder=factory.newDocumentBuilder();
// 添加根标签: languages
Element root=document.createElement("languages");
// 设置根元素的属性的键值对
root.setAttribute("category", "it");

Element lan1=document.createElement("lan");
lan1.setAttribute("id", "1");
Element name1=document.createElement("name");
// 设置标签文本值
name1.setTextContent("Java");
Element ide1=document.createElement("ide");
ide1.setTextContent("Eclipse");

Element lan2=document.createElement("lan");
lan2.setAttribute("id", "2");
Element name2=document.createElement("name");
name2.setTextContent("Swift");
Element ide2=document.createElement("ide");
ide2.setTextContent("Xcode");

Element lan3=document.createElement("lan");
lan3.setAttribute("id", "3");
Element name3=document.createElement("name");
name3.setTextContent("C#");
Element ide3=document.createElement("ide");
ide3.setTextContent("Visual Studio");

// 进行结点的组装
lan1.appendChild(name1);
lan1.appendChild(ide1);
lan2.appendChild(name2);
lan2.appendChild(ide2);
lan3.appendChild(name3);
lan3.appendChild(ide3);
root.appendChild(lan1);
root.appendChild(lan2);
root.appendChild(lan3);
document.appendChild(root);

TransformerFactory transformerFactory=TransformerFactory.newInstance();
// 创建一个Transformer, 用于将xml数据转为其他格式
Transformer transformer=transformerFactory.newTransformer();
StringWriter writer=new StringWriter();
// 将xml数据写入writer
transformer.transform(new DOMSource(document), new StreamResult(writer));

// 可以直接得到writer的String数据
System.out.println(writer.toString());

// 也可以转换成文件,第二个参数的参数传入文件对象
transformer.transform(new DOMSource(document), new StreamResult(new File("languages.xml")));
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (TransformerConfigurationException e) {
e.printStackTrace();
} catch (TransformerException e) {
e.printStackTrace();
}
}
}

参考

 评论