दिलचस्प पोस्ट
एक बेजियर पथ के साथ छवियों को रखें दी गई सूची से निकटतम ग्लास वाइस कमांड मैच पायथन में "कुछ नहीं" पर stdout पुनर्निर्देशित करना जावा की सिस्टम.एक्सिट () कैसे प्रयास / पकड़ / अंततः ब्लॉक के साथ काम करता है? क्या मुझे ईजेबी या @ इंजेक्शन का उपयोग करना चाहिए Outlook में डिफ़ॉल्ट हस्ताक्षर कैसे जोड़ें विशेषता और संपत्ति के बीच अंतर क्या है? मूल्य / टेक्स्ट बदलते सर्वर साइड के बाद टेक्स्ट बॉक्स से पाठ प्राप्त करें पंक्तियों के लिए डायनामिक कॉलम ट्रांसपोज़िंग चेकबॉक्स की डिफ़ॉल्ट छवियों को कैसे बदला जाए क्या मेरे पास कई एक्सकोड संस्करण स्थापित हो सकते हैं? पायथन में उपयोगकर्ता इनपुट के बाद "नाम: त्रुटि: नाम '' परिभाषित नहीं है ' क्यों डी 3.जेएस v3 ज़ूमिंग को कार्यान्वित करते समय मेरा बल ग्राफ़ तोड़ता है जब v2 नहीं करता? मुझे कैसे पता चलेगा कि एक अंतरफलक कैसे बनाया जाए? जावास्क्रिप्ट: प्रारूप MM-DD-YYYY में दिनांक को मान्य कैसे करें?

सी ++ के लिए सबसे अच्छा खुले XML पार्सर क्या है?

मैं अपने सी + + परियोजना में उपयोग करने के लिए एक सरल, स्वच्छ, सही XML पार्सर की तलाश कर रहा हूं। क्या मुझे अपना अपना लिखना चाहिए?

वेब के समाधान से एकत्रित समाधान "सी ++ के लिए सबसे अच्छा खुले XML पार्सर क्या है?"

कैसे RapidXML के बारे में? रैपिडएक्सएमएल एक बहुत ही तेज और छोटा XML DOM पार्सर है जो सी ++ में लिखा गया है। इसका मुख्य उद्देश्य एम्बेडेड वातावरण, कंप्यूटर गेम या किसी भी अन्य अनुप्रयोगों में है जहां उपलब्ध स्मृति या CPU प्रोसेसिंग पावर प्रीमियम पर आता है। रैपिडएक्सएमएल को बूस्ट सॉफ़्टवेयर लाइसेंस के तहत लाइसेंस दिया गया है और इसका स्रोत कोड स्वतंत्र रूप से उपलब्ध है

विशेषताएं

  • पार्सिंग गति (डोम ट्री बिल्डिंग सहित) एक ही डेटा पर क्रियान्वित स्ट्रेलन फ़ंक्शन की गति के निकट।
  • आधुनिक सीपीयू (2008 के अनुसार) पार्सटर थ्रूपुट लगभग 1 अरब वर्ण प्रति सेकंड है। ऑनलाइन मैनुअल में प्रदर्शन अनुभाग देखें।
  • कोड के छोटे स्मृति पदचिह्न और बनाया डोम पेड़
  • एक हेडर केवल-कार्यान्वयन, एकीकरण प्रक्रिया को सरल करना।
  • सरल लाइसेंस जो कि किसी भी दायित्वों के बिना वाणिज्यिक और गैर-व्यावसायिक दोनों के लगभग किसी भी उद्देश्य के लिए उपयोग की अनुमति देता है
  • यूटीएफ -8 और आंशिक रूप से यूटीएफ -16, यूटीएफ -32 एनकोडिंग का समर्थन करता है।
  • सी ++ मानक पुस्तकालय के बहुत छोटे सबसेट के अलावा अन्य कोई निर्भरता के साथ पोर्टेबल स्रोत कोड
  • यह सबसेट इतना छोटा है कि इसे आसानी से मैन्युअल रूप से अनुकरण किया जा सकता है यदि मानक पुस्तकालय का उपयोग अवांछित है।

सीमाएं

  • पार्सर DOCTYPE घोषणाओं को अनदेखा करता है।
  • XML नामस्थानों के लिए कोई समर्थन नहीं है
  • पार्सर वर्ण वैधता की जांच नहीं करता है।
  • पारसर का इंटरफ़ेस DOM विनिर्देशन के अनुरूप नहीं है।
  • पार्टर विशेषता विशिष्टता के लिए जांच नहीं करता

स्रोत: विकिपीडिया


आप पर निर्भर करते हुए, आप एक XML डेटा बाइंडिंग का उपयोग कर सकते हैं? कोडसिंथिएसिस एक्सएसडी कोड संश्लेषण द्वारा विकसित सी ++ के लिए एक XML डेटा बाइंडिंग कंपाइलर है और जीएनयू जीपीएल और एक मालिकाना लाइसेंस के तहत दो-लाइसेंस प्राप्त है। एक्सएमएल उदाहरण विनिर्देश (एक्सएमएल स्कीमा) को देखते हुए, यह सी ++ क्लासेस उत्पन्न करता है जो दिए गए शब्दकोष के साथ-साथ पार्सिंग और सीरियलाइज़ेशन कोड का प्रतिनिधित्व करते हैं।

कोडसिंथिएसिस एक्सएसडी की अनूठी विशेषताओं में से एक दो अलग-अलग एक्सएमएल स्किमा के सी + + मैपिंग के लिए इसका समर्थन है: इन-मेमोरी सी ++ / ट्री और स्ट्रीम-उन्मुख सी ++ / पार्सर सी ++ / ट्री मानचित्रण एक पेड़ की तरह, इन-मेमरी डेटा संरचना के साथ एक पारंपरिक मैपिंग है। C ++ / Parser एक नया, सैकएक्स जैसी मैपिंग है जो एक्सएमएल इंस्टेंस डॉक्यूमेंट्स में संग्रहित जानकारी को शब्दावली-विशिष्ट पार्सिंग इवेंट के पदानुक्रम के रूप में दर्शाता है। सी ++ / ट्री के मुकाबले, सी + + / पार्सर मैपिंग एक बड़े एक्सएमएल दस्तावेज को संभाल करने की अनुमति देता है जो स्मृति में फिट नहीं होता, स्ट्रीम-उन्मुख प्रसंस्करण करता है, या एक मौजूदा इन-मेमरी प्रस्तुति का उपयोग करता है।

स्रोत: विकिपीडिया ^ http : //CodeSynthesis XSD

pugixml – बहुत तेज़ (रैपिडएक्सएमएल के साथ तुलना) बहुत छोटा (तुलनात्मक रैपिडएक्सएमएल) के लिए हल्के वजन, सरल और तेज एक्सएमएल पार्सर, उपयोग करने के लिए बहुत आसान (रैपिडएक्सएमएल से बेहतर )।

टिनएक्सएमएल की कोशिश करो

http://sourceforge.net/projects/tinyxml

टीआईसीपीपी टिनीएक्सएमएल का एक "अधिक सी ++" संस्करण है

आधिकारिक नाम TinyXML ++ के लिए 'TiCPP' कम है यह TinyXML ( http://www.grinninglizard.com/tinyxml/ ) के लिए एक पूरी तरह से नया इंटरफ़ेस है जो कई सी ++ शक्तियों का उपयोग करता है। टेम्पलेट, अपवाद, और बेहतर त्रुटि हैंडलिंग। यह डॉक्सिजन में पूरी तरह से प्रलेखित है यह वास्तव में अच्छा है क्योंकि इस संस्करण में आप पहले की तरह ही सटीक तरीके से इंटरफेस करते हैं या आप नये 'टीकप' कक्षाओं का उपयोग करने के लिए चुन सकते हैं। आपको केवल TIXML_USE_TICPP को परिभाषित करना है यह वीसी 6.0, वीसी 7.0, वीसी 7.1, वीसी 8.0, मिनजीड जीसीसी 3.4.5 और लिनक्स जीएनयू जीसीसी 3+ में परीक्षण किया गया है

यह कोशिश करें: http://www.applied-mathematics.net/tools/xmlParser.html
यह RapidXML या PUGXML की तुलना में आसान और तेज़ है
TinyXML "सरल पार्सर" का सबसे खराब है।

यदि आप दक्षता / स्मृति प्रबंधन (यह बहुत छोटे ब्लॉकों को आवंटित करने की आदत है) के बारे में चिंतित हैं, तो टिनीएक्सएमएल का उपयोग न करें। मेरा निजी पसंदीदा रैपिड एक्सएमएल है

जीएसओएपी के बारे में कैसे? यह खुला स्रोत है और जीपीएल लाइसेंस के तहत स्वतंत्र रूप से उपलब्ध है। इसके नाम के बावजूद, जीएसओएपी टूलकिट एक जेनेरिक एक्सएमएल डेटा बाइंडिंग टूल है और आप अपने सी और सी ++ डाटा को स्वचालित रूप से एक्सएमएल करने के लिए बाध्य कर सकते हैं। एक्सएमएल पार्सर एपीआई का उपयोग करने की कोई ज़रूरत नहीं है, बस इसे अपने डेटा को एक्सएमएल प्रारूप में लिखने / लिखने दें। अगर आपको वास्तव में एक सुपर-सरल C ++ XML पार्सर की आवश्यकता होती है तो जीएसओएपी एक ओवरकिल हो सकता है। लेकिन सब कुछ के लिए यह अच्छी तरह से काम किया है क्योंकि प्रशंसापत्र कई औद्योगिक अनुप्रयोगों के लिए दिखाते हैं क्योंकि जीएसओएपी को 2001 में पेश किया गया था।

यहां सुविधाओं की एक संक्षिप्त सूची है:

  • पोर्टेबल: विंडोज, लिनक्स, मैक ओएस एक्स, यूनिक्स, वीक्सवर्क्स, सिम्बियन, पाम ओएस, विन सीई आदि।
  • छोटे पदचिह्न: एक XML वेब सेवा क्लाइंट एप्लिकेशन को लागू करने के लिए 73KB कोड और 2K डेटा से कम (स्मृति उपयोग को सीमित करने के लिए कोई DOM नहीं)
  • फास्ट: अन्य उपकरणों का दावा करने पर विश्वास न करें, सच गति को I / O के साथ मापा जाना चाहिए जीएसओएपी के लिए यह टीसीपी / आईपी पर 3,000 से अधिक गोलट्रिप एक्सएमएल संदेश है एक्सएमएल पार्सिंग ओवरहेड नगण्य है क्योंकि यह इनपुट / आउटपुट का एक साधारण रेखीय स्कैन है जबकि (डी) सीरियलाइज़ेशन होता है।
  • एक्सएमएल समर्थन: एक्सएमएल स्कीमा (एक्सएसडी) आयात / निर्यात, डब्लूएसडीएल आयात / निर्यात, एक्सएमएल नामस्थान, एक्सएमएल कैनोनाइलाइजेशन, एक्सएमएल इन अटैचमेंट्स (एमआईएमई), डोम के वैकल्पिक उपयोग, एक्सेंडैक्ट के साथ एक्सएमएल का निर्माण करने के कई विकल्प, यूटीएफ 8 स्ट्रिंग इत्यादि का उपयोग करते हैं।
  • XML सत्यापन: आंशिक और पूर्ण (विकल्प)
  • डब्ल्यूएस समर्थन: डब्ल्यूएस-सिक्योरिटी, डब्लूएस-रिलायबल मेसेजिंग, डब्ल्यूएस-एड्रेसिंग, डब्ल्यूएस-पॉलिसी, डब्ल्यूएस-सिक्योरिटी पॉलिसी, और अन्य।
  • डिबगिंग: लीक पहचान के साथ एकीकृत स्मृति प्रबंधन, लॉगिंग
  • एपीआई: सीखने के लिए कोई एपीआई, केवल "साबुन" इंजन संदर्भ आरंभ, फिर अपने डेटा के लिए पठन / लिखना इंटरफेस का उपयोग करें, और "साबुन" इंजन संदर्भ विनाश।

उदाहरण के लिए:

class Address { std::string name; std::vector<LONG64> number; time_t date; };

फिर soap_read_Address और soap_write_Address एक्सएमएल रीडर और लेखक को उत्पन्न करने के लिए उपरोक्त Address वर्ग घोषणापत्र पर "सोपसीपीपी 2" चलाएं, उदाहरण के लिए:

Address *a = new Address(); a = ...; soap ctx = soap_new(); soap_write_Address(ctx, a); soap_end(ctx); soap_free(ctx);

यह Address a वस्तु का Address a के लिए एक्सएमएल का प्रतिनिधित्व करता है। एक्सएमएल नेमस्पेस विवरण के साथ हैडर फ़ाइल घोषणाओं की व्याख्या करके (यहां दिखाया नहीं गया है), उपकरण भी स्कीमा उत्पन्न कर सकते हैं यह एक सरल उदाहरण है जीएसओएपी उपकरण सी और सी ++ डेटा प्रकारों की एक बहुत व्यापक श्रेणी को नियंत्रित कर सकते हैं, जिनमें सूचक-आधारित लिंक किए गए ढांचे और यहां तक ​​कि (चक्रीय) आलेख (केवल पेड़ों की बजाय) हैं।

उम्मीद है की यह मदद करेगा।

TinyXML सरल XML काम के लिए सबसे अच्छा हो सकता है लेकिन अगर आपको अधिक सुविधाओं की आवश्यकता है तो अपाचे परियोजना से एक्सर्स का प्रयास करें अपनी सुविधाओं के बारे में अधिक जानने के लिए निम्न पृष्ठ पर जाएं

http://xerces.apache.org/xerces-c/

मैं एक सी + + नौसिखिया हूँ और इस पृष्ठ पर कुछ अलग सुझावों का प्रयास करने के बाद मुझे कहना होगा कि मुझे सबसे ज्यादा पगिक्समल पसंद है यह दस्तावेज़ीकरण और एक उच्च स्तरीय एपीआई समझने में आसान है जो मैं देख रहा था।

मुझे गनोम XML पार्सर पसंद है यह ओपन सोर्स है (एमआईटी लाइसेंस, ताकि आप इसे वाणिज्यिक उत्पादों में इस्तेमाल कर सकें), तेजी से और डोम और सैक्स आधारित इंटरफेस है।

http://xmlsoft.org/

TinyXML, और भी बूस्ट। प्रॉपर्टीट्री उत्तरार्द्ध सभी आधिकारिक आवश्यकताओं को पूरा नहीं करता है, लेकिन बहुत सरल है।

टिनीएक्सएमएल या आईआरएक्सएमएल को आज़माएं … दोनों हल्के एक्सएमएल पार्सर हैं (मैं आपको टिनीएक्सएमएल का उपयोग करने का सुझाव देता हूं)।