2011-11-05 14 views
26

मैं वर्षों से एक्सएमएल पार्स करने के लिए मिनीडॉम का उपयोग कर रहा हूं। अब मैंने अचानक एलिमेंट ट्री के बारे में सीखा है। मेरा प्रश्न पार्सिंग के लिए बेहतर है? यही कारण है:एक्सएमएल पार्सिंग: एलिमेंट ट्री (एट्री) बनाम मिनीडॉम

  • कौन सा तेज है?
  • जो कम स्मृति का उपयोग करता है?
  • क्या आपके पास कोई ओ (एन^2) निर्भरता है जिसके बारे में मुझे चिंता करनी चाहिए?
  • क्या किसी को दूसरे के पक्ष में गिरा दिया जा रहा है?

हमारे पास दो इंटरफेस क्यों हैं?

धन्यवाद।

उत्तर

14

पायथन के पास दो इंटरफेस हैं क्योंकि एलिमेंट ट्री को मानक लाइब्रेरी में एकीकृत किया गया था, बाद में मिनीडॉम आने के बाद एक अच्छा सौदा था। इसके कारण डब्लू 3 सी-नियंत्रित डीओएम की तुलना में इसकी अधिक "पायथनिक" एपीआई की संभावना थी।

यदि आप गति के बारे में चिंतित हैं, तो lxml भी है, जो libxml2 का उपयोग करके एलिमेंट ट्री-संगत डीओएम बनाता है और बहुत तेज होना चाहिए - उनके पास एक बेंचमार्क सूट है जो स्वयं को एलिमेंटट्री के पायथन और सी कार्यान्वयन के साथ तुलना कर रहा है।

यदि आप स्मृति उपयोग के बारे में चिंतित हैं, तो आपको किसी भी पेड़ एपीआई का उपयोग नहीं करना चाहिए; पुलडॉम बेहतर विकल्प हो सकता है, लेकिन मैं जावा के उत्कृष्ट पुल पार्सर का उपयोग करके अनुभव से बाहर निकल रहा हूं - पुलडॉम पर अधिक वर्तमान जानकारी नहीं लगती है।

17

एक्सएमएल पार्सिंग के लिए डोम और सैक्स इंटरफेस एक्सएमएल के साथ काम करने के क्लासिक तरीके हैं। पायथन को उन इंटरफेस प्रदान करना पड़ा क्योंकि वे जाने-माने और मानक हैं।

एलिमेंटट्री पैकेज का उद्देश्य अधिक पायथनिक इंटरफ़ेस प्रदान करना था। यह प्रोग्रामर के लिए चीजों को आसान बनाने के बारे में है।

आपके निर्माण के आधार पर, उनमें से प्रत्येक में अंतर्निहित सी कार्यान्वयन है जो उन्हें तेजी से चलाता है।

उपरोक्त में से कोई भी उपकरण बहिष्कृत नहीं किया जा रहा है। उनमें से प्रत्येक के पास उनकी योग्यता होती है (उदाहरण के लिए, सैक्स को पूरे इनपुट को स्मृति में पढ़ने की आवश्यकता नहीं है)।

lxml नामक तीसरे पक्ष के मॉड्यूल भी हैं जो एक लोकप्रिय विकल्प (पूर्ण विशेषीकृत और तेज़) भी है।

+3

और यदि आपके पास तत्व के साथ प्रदर्शन समस्याएं हैं, तो एलएक्सएमएल है जो एक संगत इंटरफेस प्रदान करता है लेकिन दृश्यों के पीछे एक युद्ध-कठोर, अत्यधिक ट्यून सी पुस्तकालय का उपयोग करता है। – delnan

संबंधित मुद्दे