?Java Bean
class="java" name="code">package xml; public class Person { private String name ; private int age ; public Person(String name, int age) { super(); this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
测试程序
package xml; import java.io.FileOutputStream; import java.io.PrintWriter; import java.util.Arrays; import java.util.Collections; import java.util.List; 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.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 XmlGeneratorDemo { public static void main(String[] args) { String outputPath = "src/xml/parser/persons.xml"; generateXml(outputPath); } public static void generateXml(String outputPath) { try { Person [] arr = new Person[]{new Person("jinbo",20), new Person("gameboy",25)}; List<Person> list = Arrays.asList(arr);//将数组转换成List Document doc = generateXml(list);//生成XML文件 outputXml(doc, outputPath);//将文件输出到指定的路径 } catch (Exception e) { System.err.println("出现异常"); } } /** * 将XML文件输出到指定的路径 * @param doc * @param fileName * @throws Exception */ private static void outputXml (Document doc, String fileName) throws Exception{ TransformerFactory tf = TransformerFactory.newInstance(); Transformer transformer = tf.newTransformer(); DOMSource source = new DOMSource(doc); transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); transformer.setOutputProperty(OutputKeys.INDENT, "yes");//设置文档的换行与缩进 PrintWriter pw = new PrintWriter(new FileOutputStream(fileName)); StreamResult result = new StreamResult(pw); transformer.transform(source, result); System.out.println("生成XML文件成功!"); } /** * 生成XML文件 * @param list * @return */ public static Document generateXml(List<Person> list){ Document doc = null; Element root = null; try { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); doc = builder.newDocument(); root = doc.createElement("person"); doc.appendChild(root); } catch (Exception e) { e.printStackTrace(); return null;//如果出现异常,则不再往下执行 } int len = list.size() ; Element element ; for (int i = 0; i < len; i++) { Person person = list.get(i); element = doc.createElement("person"+(i+1)); element.setAttribute("age", ""+person.getAge()); element.setAttribute("name", person.getName()); root.appendChild(element); } return doc; } }