1) DOM (pengurai JAXP Crimson)
DOM adalah standar resmi W3C untuk merepresentasikan dokumen XML dengan cara yang tidak bergantung pada platform dan bahasa. DOM adalah kumpulan node atau potongan informasi yang disusun dalam struktur hierarki. Hierarki ini memungkinkan pengembang untuk mencari informasi spesifik di pohon. Menganalisis struktur ini biasanya memerlukan pemuatan seluruh dokumen dan membangun hierarki sebelum pekerjaan apa pun dapat dilakukan. Karena didasarkan pada hierarki informasi, DOM dianggap berbasis pohon atau berbasis objek. DOM, dan pemrosesan berbasis pohon secara umum, memiliki beberapa keunggulan. Pertama, karena pohon bersifat persisten di memori, pohon tersebut dapat dimodifikasi sehingga aplikasi dapat membuat perubahan pada data dan struktur. Ini juga memungkinkan navigasi naik dan turun pohon kapan saja, bukan proses satu kali seperti SAX. DOM juga lebih mudah digunakan.
2) saksofon
Keunggulan pemrosesan SAX sangat mirip dengan keunggulan media streaming. Analisis dapat segera dimulai daripada menunggu semua data diproses. Selain itu, karena aplikasi hanya memeriksa data saat dibaca, tidak perlu menyimpan data di memori. Ini adalah keuntungan besar untuk dokumen berukuran besar. Faktanya, aplikasi bahkan tidak perlu mengurai seluruh dokumen; aplikasi dapat berhenti menguraikan ketika kondisi tertentu terpenuhi. Secara umum, SAX juga jauh lebih cepat dibandingkan penggantinya, DOM.
DOM atau SAX? Bagi pengembang yang perlu menulis kode mereka sendiri untuk memproses dokumen XML, memilih model penguraian DOM atau SAX adalah keputusan desain yang sangat penting. DOM menggunakan struktur pohon untuk mengakses dokumen XML, sedangkan SAX menggunakan model peristiwa.
Parser DOM mengubah dokumen XML menjadi pohon yang berisi kontennya dan dapat melintasi pohon tersebut. Keuntungan menggunakan DOM untuk mengurai model adalah pemrogramannya mudah. Pengembang hanya perlu memanggil instruksi pembuatan pohon, lalu menggunakan API navigasi untuk mengakses node pohon yang diperlukan untuk menyelesaikan tugas. Elemen di pohon dapat dengan mudah ditambahkan dan dimodifikasi. Namun, karena seluruh dokumen XML perlu diproses saat menggunakan parser DOM, persyaratan kinerja dan memori relatif tinggi, terutama saat menemukan file XML berukuran besar. Karena kemampuan traversalnya, parser DOM sering digunakan dalam layanan di mana dokumen XML perlu sering diubah.
Pengurai SAX menggunakan model berbasis peristiwa. Ini dapat memicu serangkaian peristiwa saat menguraikan dokumen XML. Ketika tag tertentu ditemukan, ia dapat mengaktifkan metode panggilan balik untuk memberi tahu metode bahwa tag tertentu telah ditemukan. SAX biasanya memiliki kebutuhan memori yang lebih rendah karena memungkinkan pengembang untuk memutuskan tag mana yang akan diproses. Terutama ketika pengembang hanya perlu memproses sebagian dari data yang terdapat dalam dokumen, skalabilitas SAX lebih mencerminkan. Namun pengkodean lebih sulit bila menggunakan parser SAX, dan sulit untuk mengakses beberapa data berbeda dalam dokumen yang sama pada waktu yang bersamaan.
3) JDOM http://www.jdom.org
Tujuan JDOM adalah menjadi model dokumen khusus Java yang menyederhanakan interaksi dengan XML dan lebih cepat dibandingkan mengimplementasikannya menggunakan DOM. JDOM telah banyak dipromosikan dan dipromosikan sejak model khusus Java pertama. Ini sedang dipertimbangkan untuk penggunaan akhirnya sebagai "Ekstensi Standar Java" melalui "Permintaan Spesifikasi Java JSR-102". Pengembangan JDOM telah dimulai sejak awal tahun 2000an.
Ada dua perbedaan utama antara JDOM dan DOM. Pertama, JDOM hanya menggunakan kelas konkrit dan bukan antarmuka. Hal ini menyederhanakan API dalam beberapa hal, tetapi juga membatasi fleksibilitas. Kedua, API memanfaatkan kelas Koleksi secara ekstensif, menyederhanakan penggunaannya bagi pengembang Java yang sudah terbiasa dengan kelas-kelas ini.
Dokumentasi JDOM menyatakan bahwa tujuannya adalah untuk "menyelesaikan 80% (atau lebih) masalah Java/XML dengan menggunakan 20% (atau kurang) upaya" (dengan asumsi 20% berdasarkan kurva pembelajaran). JDOM tentunya berguna untuk sebagian besar aplikasi Java/XML, dan sebagian besar pengembang menganggap API lebih mudah dipahami daripada DOM. JDOM juga mencakup pemeriksaan yang cukup ekstensif terhadap perilaku program untuk mencegah pengguna melakukan apa pun yang tidak masuk akal dalam XML. Namun, Anda tetap harus memahami XML dengan cukup baik untuk melakukan lebih dari sekadar dasar-dasarnya (atau bahkan memahami kesalahan dalam beberapa kasus). Ini mungkin merupakan pekerjaan yang lebih bermakna daripada mempelajari antarmuka DOM atau JDOM.
JDOM sendiri tidak mengandung parser. Biasanya menggunakan parser SAX2 untuk mengurai dan memvalidasi dokumen XML masukan (walaupun dapat juga menggunakan representasi DOM yang dibuat sebelumnya sebagai masukan). Ini berisi konverter untuk menampilkan representasi JDOM ke dalam aliran peristiwa SAX2, model DOM, atau dokumen teks XML. JDOM adalah open source yang dirilis di bawah varian lisensi Apache.
4) DOM4J http://dom4j.sourceforge.net
Meskipun DOM4J mewakili pengembangan yang sepenuhnya independen, DOM4J pada awalnya merupakan cabang cerdas dari JDOM. Ini menggabungkan banyak fitur di luar representasi dokumen XML dasar, termasuk dukungan XPath terintegrasi, dukungan Skema XML, dan pemrosesan berbasis peristiwa untuk dokumen besar atau streaming. Ini juga menyediakan opsi untuk membangun representasi dokumen dengan kemampuan akses paralel melalui API DOM4J dan antarmuka DOM standar. Ini telah dikembangkan sejak paruh kedua tahun 2000.
Untuk mendukung semua fitur ini, DOM4J menggunakan antarmuka dan metode kelas dasar abstrak. DOM4J banyak menggunakan kelas Koleksi di API, tetapi dalam banyak kasus DOM4J juga menyediakan alternatif yang memungkinkan kinerja lebih baik atau pendekatan pengkodean yang lebih langsung. Manfaat langsungnya adalah meskipun DOM4J membayar harga API yang lebih kompleks, DOM4J memberikan fleksibilitas yang jauh lebih besar daripada JDOM.
Sambil menambahkan fleksibilitas, integrasi XPath, dan penanganan dokumen besar, tujuan DOM4J sama dengan JDOM: kemudahan penggunaan dan pengoperasian intuitif untuk pengembang Java. Ini juga bertujuan untuk menjadi solusi yang lebih lengkap daripada JDOM, mencapai tujuan menangani semua masalah Java/XML. Meskipun mencapai tujuan tersebut, penekanannya lebih sedikit dibandingkan JDOM dalam mencegah perilaku aplikasi yang salah.
DOM4J adalah Java XML API yang sangat, sangat bagus dengan kinerja luar biasa, fungsi yang kuat, dan kemudahan penggunaan yang luar biasa. Saat ini Anda dapat melihat semakin banyak perangkat lunak Java yang menggunakan DOM4J untuk membaca dan menulis XML. Perlu disebutkan bahwa JAXM Sun juga menggunakan DOM4J.
2... bandingkan
1) DOM4J memiliki kinerja terbaik. Bahkan JAXM Sun juga menggunakan DOM4J. Saat ini, banyak proyek open source menggunakan DOM4J secara ekstensif. Jika portabilitas tidak menjadi masalah, gunakan DOM4J.
2) JDOM dan DOM berkinerja buruk selama pengujian kinerja, dan memori meluap saat menguji dokumen 10 juta. Perlu juga dipertimbangkan untuk menggunakan DOM dan JDOM dalam kasus dokumen kecil. Meskipun pengembang JDOM telah menyatakan bahwa mereka berharap untuk fokus pada masalah kinerja sebelum rilis resmi, dari sudut pandang kinerja, tidak ada yang direkomendasikan. Selain itu, DOM masih merupakan pilihan yang sangat bagus. Implementasi DOM banyak digunakan di banyak bahasa pemrograman. Ini juga merupakan dasar bagi banyak standar terkait XML lainnya, dan karena secara resmi direkomendasikan oleh W3C (dibandingkan dengan model Java berbasis non-standar), ini mungkin juga diperlukan dalam jenis proyek tertentu (seperti menggunakan DOM dalam JavaScript).
3) SAX berkinerja lebih baik, yang bergantung pada metode penguraian spesifiknya - didorong oleh peristiwa. SAX mendeteksi aliran XML yang masuk, tetapi tidak memuatnya ke dalam memori (tentu saja ketika aliran XML dibaca, beberapa dokumen akan disembunyikan sementara di memori).
3. Penggunaan dasar empat metode operasi xml
berkas XML: