您的位置:首页 > 编程语言 > Java开发

java生成xml文件

2014-06-03 16:20 239 查看
文章转自:http://blog.csdn.net/jinbogameboy/article/details/7183645

Java Bean

[java] view
plaincopy

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;

}

}

测试程序

[java] view
plaincopy

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;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: