您现在的位置是:首页 >精选问答 > 2024-01-09 11:00:27 来源:
as a result of(resulttransformer)
大家好,我是小夏,我来为大家解答以上问题。as a result of,resulttransformer很多人还不知道,现在让我们一起来看看吧!
1、package xml;
2、public class Person {
3、private String name ;
4、private int age ;
5、public Person(String name, int age) {
6、 super();
7、 this.name = name;
8、 this.age = age;
9、}
10、public String getName() {
11、 return name;
12、}
13、public void setName(String name) {
14、 this.name = name;
15、}
16、public int getAge() {
17、 return age;
18、}
19、public void setAge(int age) {
20、 this.age = age;
21、}
22、}
23、测试程序
24、[java] view plaincopy
25、package xml;
26、import java.io.FileOutputStream;
27、import java.io.PrintWriter;
28、import java.util.Arrays;
29、import java.util.Collections;
30、import java.util.List;
31、import javax.xml.parsers.DocumentBuilder;
32、import javax.xml.parsers.DocumentBuilderFactory;
33、import javax.xml.parsers.ParserConfigurationException;
34、import javax.xml.transform.OutputKeys;
35、import javax.xml.transform.Transformer;
36、import javax.xml.transform.TransformerFactory;
37、import javax.xml.transform.dom.DOMSource;
38、import javax.xml.transform.stream.StreamResult;
39、import org.w3c.dom.Document;
40、import org.w3c.dom.Element;
41、public class XmlGeneratorDemo {
42、public static void main(String[] args) {
43、 String outputPath = "src/xml/parser/persons.xml";
44、 generateXml(outputPath);
45、}
46、public static void generateXml(String outputPath) {
47、 try {
48、 Person [] arr = new Person[]{new Person("jinbo",20), new Person("gameboy",25)};
49、 List<Person> list = Arrays.asList(arr);//将数组转换成List
50、 Document doc = generateXml(list);//生成XML文件
51、 outputXml(doc, outputPath);//将文件输出到指定的路径
52、 } catch (Exception e) {
53、 System.err.println("出现异常");
54、 }
55、}
56、/**
57、 * 将XML文件输出到指定的路径
58、 * @param doc
59、 * @param fileName
60、 * @throws Exception
61、 */
62、private static void outputXml (Document doc, String fileName) throws Exception{
63、 TransformerFactory tf = TransformerFactory.newInstance();
64、 Transformer transformer = tf.newTransformer();
65、 DOMSource source = new DOMSource(doc);
66、 transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
67、 transformer.setOutputProperty(OutputKeys.INDENT, "yes");//设置文档的换行与缩进
68、 PrintWriter pw = new PrintWriter(new FileOutputStream(fileName));
69、 StreamResult result = new StreamResult(pw);
70、 transformer.transform(source, result);
71、 System.out.println("生成XML文件成功!");
72、}
73、/**
74、 * 生成XML文件
75、 * @param list
76、 * @return
77、 */
78、public static Document generateXml(List<Person> list){
79、 Document doc = null;
80、 Element root = null;
81、 try {
82、 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
83、 DocumentBuilder builder = factory.newDocumentBuilder();
84、 doc = builder.newDocument();
85、 root = doc.createElement("person");
86、 doc.appendChild(root);
87、 } catch (Exception e) {
88、 e.printStackTrace();
89、 return null;//如果出现异常,则不再往下执行
90、 }
91、 int len = list.size() ;
92、 Element element ;
93、 for (int i = 0; i < len; i++) {
94、 Person person = list.get(i);
95、 element = doc.createElement("person"+(i+1));
96、 element.setAttribute("age", ""+person.getAge());
97、 element.setAttribute("name", person.getName());
98、 root.appendChild(element);
99、 }
100、 return doc;
101、}
102、}
本文到此讲解完毕了,希望对大家有帮助。