Java & amp; Xml tutorial (8) Use JDOM to convert Java objects to XML

Source: Internet
Author: User

Java & Xml tutorial (8) Use JDOM to convert Java objects to XML

In the previous tutorial, we learned how to use JDOM to parse and modify the content of an XML file. This section describes how to convert a Java object to XML data and generate a file.
The Document class of JDOM provides convenient methods to create elements and attributes. The XMLOutputter class can write documents to any OutputStream and Writer objects.
In this example, we create a set of Employee objects and write them to an XML file.
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;    }}

We use the Employee Object id as the attributes of the Employee element in the XML file, and set the namespace of the root element Employees to "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
  
    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
   
     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));    }}
   
  

Run the program to obtain the following XML file:
Employees. xml


  
   
        25    
    
     Pankaj
        
    
     Male
        
    
     Java Developer
      
     
   
        34    
    
     Mona
        
    
     Female
        
    
     Manager
      
    
   
        45    
    
     Dave
        
    
     Male
        
    
     Support
    
   
  

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.