在前面的教程中我们学习了如何使用JDOM解析和修改XML文件内容,本节介绍如何将Java对象转换为XML数据并生成文件。
JDOM的Document类提供了便捷的方法创建元素和属性,XMLOutputter 类能将Document写到任何OutputStream和Writer对象中。
在本例中我们创建Employee对象集合并将它写到XML文件中。
Employee.java
package com.journaldev.xml; public class Employee { private int id; private String name; private String gender; private int age; private String role; public Employee(){} public Employee(int id, String name, int age, String gender, String role){ this.id=id; this.age=age; this.name=name; this.gender=gender; this.role=role; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getRole() { return role; } public void setRole(String role) { this.role = role; } }
我们将Employee对象id作为XML文件中Employee元素的属性,并且设置根元素Employees的命名空间为“http://www.jb51.cc/”
JDomXMLWriter.java
package com.journaldev.xml.jdom; import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.jdom2.Document; import org.jdom2.Element; import org.jdom2.Namespace; import org.jdom2.output.Format; import org.jdom2.output.XMLOutputter; import com.journaldev.xml.Employee; public class JDomXMLWriter { public static void main(String[] args) throws IOException { List<Employee> empList = new ArrayList<>(); empList.add(new Employee(1, Pankaj,25,Male,Java Developer)); empList.add(new Employee(2, Mona,34,Female,Manager)); empList.add(new Employee(3, Dave,45,Male,Support)); String fileName = employees.xml; writeFileUsingJDOM(empList, fileName); } private static void writeFileUsingJDOM(List<Employee> empList, String fileName) throws IOException { Document doc = new Document(); doc.setRootElement(new Element(Employees, Namespace.getNamespace(http://www.journaldev.com/employees))); for(Employee emp : empList){ Element employee = new Element(Employee); employee.setAttribute(id,+emp.getId()); employee.addContent(new Element(age).setText(+emp.getAge())); employee.addContent(new Element(name).setText(emp.getName())); employee.addContent(new Element(gender).setText(emp.getGender())); employee.addContent(new Element(role).setText(emp.getRole())); doc.getRootElement().addContent(employee); } //JDOM document is ready Now, lets write it to file Now XMLOutputter xmlOutputter = new XMLOutputter(Format.getPrettyFormat()); //output xml to console for debugging //xmlOutputter.output(doc, System.out); xmlOutputter.output(doc, new FileOutputStream(fileName)); } }
运行程序将获得下面的XML文件:
employees.xml
<?xml version=1.0 encoding=UTF-8?><Employees xmlns=http://www.journaldev.com/employees> <Employee xmlns= id=1> <age>25</age> <name>Pankaj</name> <gender>Male</gender> <role>Java Developer</role> </Employee> <Employee xmlns= id=2> <age>34</age> <name>Mona</name> <gender>Female</gender> <role>Manager</role> </Employee> <Employee xmlns= id=3> <age>45</age> <name>Dave</name> <gender>Male</gender> <role>Support</role> </Employee></Employees>
原文地址:http://www.jb51.cc/
在前面的教程中我们学习了如何使用JDOM解析和修改XML文件内容,本节介绍如何将Java对象转换为XML数据并生成文件。
JDOM的Document类提供了便捷的方法创建元素和属性,XMLOutputter 类能将Document写到任何OutputStream和Writer对象中。
在本例中我们创建Employee对象集合并将它写到XML文件中。
Employee.java
package com.journaldev.xml; public class Employee { private int id; private String name; private String gender; private int age; private String role; public Employee(){} public Employee(int id, String name, int age, String gender, String role){ this.id=id; this.age=age; this.name=name; this.gender=gender; this.role=role; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getRole() { return role; } public void setRole(String role) { this.role = role; } }
我们将Employee对象id作为XML文件中Employee元素的属性,并且设置根元素Employees的命名空间为“http://www.jb51.cc/”
JDomXMLWriter.java
package com.journaldev.xml.jdom; import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList; import java.util.List;import org.jdom2.Document; import org.jdom2.Element;import org.jdom2.Namespace; import org.jdom2.output.Format; import org.jdom2.output.XMLOutputter; import com.journaldev.xml.Employee; public class JDomXMLWriter { public static void main(String[] args) throws IOException { List<Employee> empList = new ArrayList<>(); empList.add(new Employee(1, Pankaj,25,Male,Java Developer)); empList.add(new Employee(2, Mona,34,Female,Manager)); empList.add(new Employee(3, Dave,45,Male,Support)); String fileName = employees.xml; writeFileUsingJDOM(empList, fileName); } private static void writeFileUsingJDOM(List<Employee> empList, String fileName) throws IOException { Document doc = new Document(); doc.setRootElement(new Element(Employees, Namespace.getNamespace(http://www.journaldev.com/employees))); for(Employee emp : empList){ Element employee = new Element(Employee); employee.setAttribute(id,+emp.getId()); employee.addContent(new Element(age).setText(+emp.getAge())); employee.addContent(new Element(name).setText(emp.getName())); employee.addContent(new Element(gender).setText(emp.getGender())); employee.addContent(new Element(role).setText(emp.getRole())); doc.getRootElement().addContent(employee); } //JDOM document is ready Now, lets write it to file Now XMLOutputter xmlOutputter = new XMLOutputter(Format.getPrettyFormat()); //output xml to console for debugging //xmlOutputter.output(doc, System.out); xmlOutputter.output(doc, new FileOutputStream(fileName)); } }
运行程序将获得下面的XML文件:
employees.xml
<?xml version=1.0 encoding=UTF-8?><Employees xmlns=http://www.journaldev.com/employees> <Employee xmlns= id=1> <age>25</age> <name>Pankaj</name> <gender>Male</gender> <role>Java Developer</role> </Employee> <Employee xmlns= id=2> <age>34</age> <name>Mona</name> <gender>Female</gender> <role>Manager</role> </Employee> <Employee xmlns= id=3> <age>45</age> <name>Dave</name> <gender>Male</gender> <role>Support</role> </Employee></Employees>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。