首页 > 后端开发 > XML/RSS教程 > Java&Xml教程(八)使用JDOM将Java对象转换为XML

Java&Xml教程(八)使用JDOM将Java对象转换为XML

黄舟
发布: 2017-02-22 14:55:02
原创
1755 人浏览过

在前面的教程中我们学习了如何使用JDOM解析和修改XML文件内容,本节介绍如何将Java对象转换为XML数据并生成文件。 

JDOM的Document类提供了便捷的方法创建元素和属性,XMLOutputter 类能将Document写到任何OutputStream和Writer对象中。
在本例中我们创建Employee对象集合并将它写到XML文件中。
Employee.java

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

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.php.cn/”
JDOMXMLWriter.java

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

<?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.php.cn/

在前面的教程中我们学习了如何使用JDOM解析和修改XML文件内容,本节介绍如何将Java对象转换为XML数据并生成文件。
JDOM的Document类提供了便捷的方法创建元素和属性,XMLOutputter 类能将Document写到任何OutputStream和Writer对象中。
在本例中我们创建Employee对象集合并将它写到XML文件中。
Employee.java

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

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.php.cn/”
JDOMXMLWriter.java

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

<?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>

登录后复制
登录后复制

以上就是Java&Xml教程(八)使用JDOM将Java对象转换为XML的内容,更多相关内容请关注PHP中文网(www.php.cn)!


相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板