Belirli bir ayrıştırıcı uygulamasını dikkate almamanız gerektiğini düşünüyorum. XML İşleme için Java API'si, uygun tüm ayrıştırıcı uygulamalarını standart bir şekilde kullanmanızı sağlar. Kod çok daha taşınabilir olmalı ve belirli bir ayrıştırıcının çok eski olduğunu fark ettiğinizde, kodunuzun bir satırını değiştirmeden başka bir kodla değiştirebilirsiniz (doğru yaparsanız).
Temel olarak XML'yi standart bir şekilde ele almanın üç yolu vardır:
- SAX Bu en basit API. XML, seri bir şekilde işlendiğinde, öğeler / nitelikler içindeki verileri alan bir İşleyici sınıfı tanımlayarak XML'yi okursunuz. Yalnızca bazı nitelikleri / öğeleri okumayı ve / veya bazı değerleri geri yazmayı (vakanız) planlamak daha hızlı ve kolaydır.
- DOM Bu yöntem, karmaşık XML işleme ve işleme için daha iyi olması için rastgele değiştirmenize / erişmenize olanak tanıyan bir nesne ağacı oluşturur.
- StAX SAX ve DOM arasındaki yolun ortasında. Sadece işlenirken ilgilendiğiniz ayrıştırıcıdan veri çekmek için kod yazmanız yeterlidir.
JDOM veya Apache gibi tescilli API'ları (yani Apache Xerces XMLSerializer ) unutun, çünkü sizi zaman içinde gelişebilecek veya geriye dönük uyumluluğu kaybedebilecek belirli bir uygulamaya bağlayacaksınız; JDOM'un yeni bir sürümünü veya hangi ayrıştırıcıyı kullanırsanız kullanın. Java standart API'sine (fabrikaları ve arayüzleri kullanarak) bağlı kalırsanız, kodunuz çok daha modüler ve bakımı yapılabilir olacaktır.
Önerilen ayrıştırıcıların hepsinin (hepsini kontrol etmedim, ama neredeyse eminim) bir JAXP uygulamasına uyduğunu söylemeye gerek yok, teknik olarak hepsini kullanabilirsiniz, hangisi olursa olsun.