bagaimana cara mengurai xml ke objek java?

Saya memiliki XML yang digunakan untuk mengkonfigurasi beberapa aturan, tidak memiliki struktur yang kompleks, tetapi konfigurasi ini digunakan di mana saja di sistem saya, jadi saya ingin mengurai XML ini ke objek java dan mendesainnya sebagai mode singleton, apakah ada cara yang baik yang dapat saya gunakan untuk unmarshal XML ke objek Java secara langsung tanpa menulis banyak kode?

Saya melakukan beberapa penelitian di Google dan diketahui JAXB adalah pilihan, aplikasi saya hanya beberapa jenis program alat yang membaca aturan dan kemudian mengikuti melakukan hal-hal, JAXB dapat digunakan untuk layanan web secara lebih luas, apakah cocok dengan proyek saya?

Jika ya, pertanyaan yang paling penting adalah, saya menggunakan xjc untuk menghasilkan kelas sumber objek java sesuai file xsd, setelah unmarshal saya akan langsung mendapatkan objek configurationType ini, apakah perlu saya mengkonversi lagi, (dari kelas JaxB ke konfigurasi objek java pojo yang saya miliki), saya melihat sebagian besar pembuat kode melakukan ini, tetapi mengapa? karena mereka adalah beberapa data, hanya dari objek yang dihasilkan ke JAXB dan menyalin ke objek POJO yang dibuat sendiri.

JAXB adalah solusi yang ideal. Tetapi anda tidak perlu xsd dan xjc untuk itu. Lebih sering daripada tidak Anda tidak memiliki xsd tetapi Anda tahu apa xml Anda. Cukup analisa xml anda, mis,


    29
    mkyong

Buat kelas model yang diperlukan:

@XmlRootElement
public class Customer {

    String name;
    int age;
    int id;

    public String getName() {
        return name;
    }

    @XmlElement
    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    @XmlElement
    public void setAge(int age) {
        this.age = age;
    }

    public int getId() {
        return id;
    }

    @XmlAttribute
    public void setId(int id) {
        this.id = id;
    }

}

Cobalah untuk membatalkan:

JAXBContext jaxbContext = JAXBContext.newInstance(Customer.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
Customer customer = (Customer) jaxbUnmarshaller.unmarshal(new File("C:\\file.xml"));

Periksa hasil, perbaiki bug!

Komentar (6)

Untuk melakukan Unmarshall menggunakan JAXB:

  1. Konversikan XML yang diberikan ke XSD (sendiri atau dengan konverter online),

  2. Buat proyek JAXB di eclipse,

  3. Buat file XSD dan tempelkan konten XSD yang telah dikonversi di dalamnya,

  4. Klik kanan pada file **XSD--> Generate--> JAXB Classes--> ikuti instruksinya (ini akan membuat semua file .java yang diperlukan di src, yaitu, satu package-info, pabrik objek dan kelas pojo),

  5. Buat file .java lain di src untuk mengoperasikan operasi unmarshall, dan jalankan.

Selamat Mengode !!!

Komentar (0)

JAXB adalah pilihan yang dapat diandalkan karena melakukan pemetaan xml ke kelas java dengan lancar. Tetapi ada kerangka kerja lain yang tersedia, berikut ini salah satunya:

https://code.google.com/p/xmappr/

Komentar (1)