ホームページ  >  記事  >  バックエンド開発  >  Java&Xmlチュートリアル (8) JDOMを使用してJavaオブジェクトをXMLに変換する

Java&Xmlチュートリアル (8) JDOMを使用してJavaオブジェクトをXMLに変換する

黄舟
黄舟オリジナル
2017-02-22 14:55:021642ブラウズ

前のチュートリアルでは、JDOM を使用して XML ファイルの内容を解析および変更する方法を学習しました。このセクションでは、Java オブジェクトを XML データに変換し、ファイルを生成する方法を紹介します。

JDOM の Document クラスは、要素と属性を作成するための便利なメソッドを提供し、XMLOutputter クラスは、任意の OutputStream および Writer オブジェクトに Document を書き込むことができます。
この例では、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;
    }

}

XML ファイル内の Employee 要素の属性として Employee オブジェクト ID を使用し、ルート要素 Employees の名前空間を "http://www.php.cn/"
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.php.cn/

前のチュートリアルでは、JDOM を使用して解析および解析する方法を学びました。 XML ファイルの内容を変更する このセクションでは、Java オブジェクトを XML データに変換し、ファイルを生成する方法について説明します。
JDOM の Document クラスは、要素と属性を作成するための便利なメソッドを提供し、XMLOutputter クラスは、任意の OutputStream および Writer オブジェクトに Document を書き込むことができます。
この例では、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;
    }

}

XML ファイル内の Employee 要素の属性として Employee オブジェクト ID を使用し、ルート要素 Employees の名前空間を "http://www.php.cn/"
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>

上記は、Java&Xml チュートリアル (8) JDOM を使用して Java オブジェクトを XML に変換する内容です。 PHP 中国語 Web サイト (www.php.cn)!


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。