zoukankan      html  css  js  c++  java
  • Java&Xml教程(八)使用JDOM将Java对象转换为XML

    在前面的教程中我们学习了如何使用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

  • 相关阅读:
    前缀和
    不用加减乘除做加法
    数组中重复的数字
    滑动窗口的最大值
    矩阵中的路径
    Redis 和 Memcached 的区别 Tair
    机器人的运动范围
    汉诺塔问题
    洗牌算法
    斐波那契查找算法(黄金分割查找算法)
  • 原文地址:https://www.cnblogs.com/lanzhi/p/6468344.html
Copyright © 2011-2022 走看看