मुझे लगता है कि आपको किसी विशिष्ट पार्सर कार्यान्वयन पर विचार नहीं करना चाहिए। एक्सएमएल प्रोसेसिंग के लिए जावा एपीआई आपको मानक तरीके से किसी भी अनुरूप पार्सर कार्यान्वयन का उपयोग करने देता है। कोड बहुत अधिक पोर्टेबल होना चाहिए, और जब आपको पता चलता है कि एक विशिष्ट पार्सर बहुत पुराना हो गया है, तो आप अपने कोड की एक पंक्ति को बदलने के बिना इसे दूसरे के साथ बदल सकते हैं (यदि आप इसे सही तरीके से करते हैं)।
मूल रूप से XML को मानक तरीके से संभालने के तीन तरीके हैं:
- SAX यह सबसे सरल एपीआई है। XML को सीरियल तरीके से संसाधित होने पर, तत्वों / विशेषताओं के अंदर डेटा प्राप्त करने वाले हैंडलर वर्ग को परिभाषित करके आप XML पढ़ते हैं। यह तेज और सरल है यदि आप केवल कुछ विशेषताओं / तत्वों को पढ़ने और / या कुछ मान वापस लिखने की योजना बनाते हैं (आपका मामला)।
- DOM यह विधि एक ऑब्जेक्ट ट्री बनाता है जो आपको यादृच्छिक रूप से इसे संशोधित / एक्सेस करने देता है ताकि यह जटिल XML हेरफेर और हैंडलिंग के लिए बेहतर हो।
- Stax यह SAX और DOM के बीच के रास्ते के बीच में है। जब आप संसाधित होते हैं तो जिस डेटा में आपकी रुचि होती है, उससे डेटा खींचने के लिए आप सिर्फ कोड लिखते हैं।
स्वामित्व API जैसे JDOM या Apache वाले (यानी Apache Xerces XMLSerializer ) को भूल जाइए क्योंकि यह आपको एक विशिष्ट कार्यान्वयन से जोड़ देगा जो समय के साथ विकसित हो सकता है या बैकवर्ड संगतता खो सकता है, जो भविष्य में जब आप अपग्रेड करना चाहते हैं तो अपना कोड बदल देंगे। JDOM का नया संस्करण या जो भी पार्सर आप उपयोग करते हैं। यदि आप जावा मानक एपीआई (कारखानों और इंटरफेस का उपयोग करके) से चिपके रहते हैं, तो आपका कोड बहुत अधिक मॉड्यूलर और रखरखाव योग्य होगा।
यह कहने की कोई आवश्यकता नहीं है कि सभी (मैंने सभी की जांच नहीं की है, लेकिन पार्सर्स ने प्रस्तावित एक JAXP कार्यान्वयन का अनुपालन किया है, ताकि आप तकनीकी रूप से सभी का उपयोग कर सकें, कोई बात नहीं।