2009-01-02 16 views

उत्तर

58

NSXMLParser एक SAX पार्सर है, जिसका अर्थ यह XML दस्तावेज के माध्यम से कदम, और (जैसे कि एक xml नोड आदि शुरू करने, गुण की खोज, के रूप में) विभिन्न घटनाओं की (प्रतिनिधि विधियों के माध्यम से) आपको सूचित करता है। इस प्रकार का एक्सएमएल प्रसंस्करण विशाल दस्तावेजों को पार्स करने के लिए सबसे अच्छा है, और जब आपको केवल एक बड़ी फ़ाइल से डेटा की एक छोटी राशि पुनर्प्राप्त करने की आवश्यकता होती है।

SAX के विपरीत DOM मॉडल है, जहां संपूर्ण एक्सएमएल पेड़ को स्मृति में पार्स किया जाता है (आमतौर पर एक कॉल के साथ), और फिर आप प्रस्तुत एपीआई से एक्सएमएल दस्तावेज़ का स्वतंत्र रूप से एक्सप्लोर कर सकते हैं। यह आमतौर पर काम करने के लिए बहुत आसान है, क्योंकि आपको पूरे एक्सएमएल दस्तावेज़ में यादृच्छिक पहुंच मिलती है।

तो पहला सवाल जवाब देना चाहिए कि सैक्स बनाम डीओएम प्रश्न है। यदि आप बड़ी एक्सएमएल फाइलों से चिंतित हैं (10 एमबी या बड़ा कहें), तो आप SAX के साथ रहना चाहेंगे। यदि आप छोटी एक्सएमएल फाइलों, या छोटे एक्सएमएल टुकड़ों के साथ काम कर रहे हैं, तो अक्सर डीओएम का उपयोग करना अधिक आसान होता है।

यदि आप वास्तव में डोम के साथ जाने का फैसला करते हैं, तो आपके पास कुछ विकल्प हैं।

libxml2 सी में लिखा गया एक बहुत शक्तिशाली एपीआई है। यह मुख्य रूप से डोम शैली के उपयोग के लिए है, लेकिन यदि आप इसके साथ अनुभव करते हैं तो अन्य विकल्प भी हैं। लेकिन, जैसा कि यह सी में लिखा गया है, यह अक्सर उद्देश्य-सी (वस्तुओं, और autorelease), या नेट दुनिया से आने वाले लोगों से अधिक परिचित लोगों के लिए आकर्षक नहीं है। इस प्रकार, इसे अधिक परिचित बनाने के लिए libxml के आस-पास मूल उद्देश्य-सी wrapper की आवश्यकता/इच्छा है। TouchXML एक ऐसा रैपर है। यह अच्छी तरह से काम करता है अगर आपको केवल एक्सएमएल तक पहुंच की आवश्यकता है। यदि आप एक्सएमएल को बदलना चाहते हैं, या स्क्रैच से एक्सएमएल टुकड़े/दस्तावेज़ बनाना चाहते हैं, तो मैं KissXML के साथ जाने की अनुशंसा करता हूं।

+3

हे रॉबी, टचएक्सएमएल को एक्सएमएल लिखने के लिए समर्थन है। – schwa

+0

हे रॉबी, क्या आप इसे देख सकते हैं ['xmlKeepBlanksDefault' की घोषणा मॉड्यूल 'libxml2.parser' से आयात होने से पहले आयात की जानी चाहिए] (https://stackoverflow.com/questions/48501624/declaration-of-xmlkeepblanksdefault- चाहिए होने वाली आयातित-से-मॉड्यूल-libxml2-पार्स) –

14

XML Tutorial for iOS: How To Choose The Best XML Parser for Your iPhone Project देखें:

विकल्पों में से एक बहुत कुछ कर रहे हैं, जब यह iPhone पर XML पार्स करने के लिए आता है। आईफोन एसडीके से चुनने के लिए दो अलग-अलग पुस्तकालयों के साथ आता है, और टीबीएक्सएमएल, टचएक्सएमएल, किसएक्सएमएल, टिनीएक्सएमएल, और जीडीएटीएक्सएमएल जैसे कई लोकप्रिय तृतीय पक्ष पुस्तकालय उपलब्ध हैं। एक डेवलपर अपनी परियोजना के लिए सबसे अच्छा एक्सएमएल पार्सर चुनने के लिए कैसे है?

मैं हाल ही में वहां विभिन्न विकल्पों पर एक नज़र डाल रहा हूं, और उपरोक्त पुस्तकालयों में से प्रत्येक को यह जानने के लिए कि वे कैसे काम करते हैं और उनके प्रदर्शन की तुलना करने के लिए ऐप्पल से एक्सएमएलपेरफॉर्मेंस नमूना बढ़ाते हैं। मैंने सोचा कि मैं उन लोगों को साझा करूंगा जो मैंने अब तक उन लोगों के लिए सीखा है जो शायद अपने आईफोन प्रोजेक्ट के लिए सर्वश्रेष्ठ एक्सएमएल लाइब्रेरी खोज रहे हों।

इस एक्सएमएल ट्यूटोरियल में हम सबसे लोकप्रिय आईफोन पुस्तकालयों की विशेषताओं और प्रदर्शन की विस्तृत तुलना देंगे, बताएं कि उनके बीच कैसे चयन करें, और नमूना प्रोजेक्ट दें जो दिखा रहा है कि उपरोक्त में से प्रत्येक का उपयोग करके एक्सएमएल डेटा कैसे पढ़ा जाए पुस्तकालयों ...

2

एक और अच्छा ब्लॉक आधारित XML पार्सिंग पुस्तकालय है - RaptureXML (github) ZaBlanc द्वारा, यह ऑब्जेक्टिव-सी एपीआई libxml2 की चोटी पर प्रदान करते हैं, मैं निश्चित रूप से इसे करने की कोशिश करना सलाह देते हैं।

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