Java&Xml教程(八)使用JDOM将Java对象转换为XML
来源:互联网 发布:外国网民评论中国知乎 编辑:程序博客网 时间:2024/05/16 07:58
在前面的教程中我们学习了如何使用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.journaldev.com/employees”
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.journaldev.com/1211/jdom-write-xml-file-example-from-object
2 0
- Java&Xml教程(八)使用JDOM将Java对象转换为XML
- Java&Xml教程(六)使用JDOM解析XML文件
- java中使用XStream实现将对象转为xml格式字符串或者将xml格式的字符串转换为对象
- java通过注解将对象转换为xml
- Java&Xml教程(七)使用JDOM修改XML文件内容
- 使用XStream将Java对象和XML之间相互转换
- 使用xstream将xml转换成java对象
- 使用org.dom4j将java对象转化为xml
- 使用org.dom4j将java对象转化为xml
- java jdom 将xml转map
- 将java对象与xml互相转换
- 将Java对象保存为XML文档
- xml解析(jdom java)
- java 读写xml(jdom)
- java中使用XStream实现将对象转为xml格式字符串或者将xml格式的字符串转换为对象==
- JAVA对象转换为XML格式
- java 中xml转换为json对象
- java对象转换为xml格式字符串
- 二叉树求两节点最低公共祖先,求任意两节点距离
- MySQL常用查询语句总结(转)
- V210 UART TX 流程
- 使用python UIAutomation从QQ2016(8.0)群界面获取所有群成员详细资料,
- ImageView.ScaleType
- Java&Xml教程(八)使用JDOM将Java对象转换为XML
- java入门学习(2)—基本数据类型
- 深入研究socket编程(1)-----socket之TCP回射服务器/客户端程序
- Codeforces Round #338 (Div. 2) D. Multipliers
- 优秀博客网址
- LOD原理
- vim-go安装
- C++编译链接过程
- JAVA 静态成员不具有多态性