2011-04-16 19 views
5

मैं xpath समर्थन के साथ xml पार्सर खोजने की कोशिश कर रहा हूं जो स्मृति की थोड़ी मात्रा का उपयोग करता है, या स्मृति की निरंतर मात्रा का उपयोग करता है, मैं बड़ी xml फ़ाइलों को पार्स करने की कोशिश कर रहा हूं, जैसे लगभग 1 गीगा, मैं रहा हूं xqilla के बारे में पढ़ना, और ऐसा लगता है कि यह बहुत बड़ी मात्रा में स्मृति का उपयोग करता है क्योंकि यह डोम आधारित है, अगर मैं गलत हूं तो मुझे सही करें .. वैसे भी, सी ++ & लिनक्स के लिए ऐसे xml पार्सर के लिए कोई विचार?निरंतर स्मृति उपयोग के साथ xml पार्सिंग

+0

पर आप बेहतर सी ++ टैग भी जोड़ना चाहते हैं –

उत्तर

1

यदि आप एक्सएमएल को अनिवार्य रूप से एक ही पास में संसाधित कर सकते हैं, तो एक सैक्स पार्सर एक अच्छा विचार होगा। अपाचे Xerces C++ के बारे में कैसे?

+0

SAX मुझे पता है कि xpath का समर्थन नहीं करता है .. – shd

+0

ओह क्षमा करें, मुझे याद आया। लेकिन यदि आप अपनी XPath आवश्यकता को छोड़ देते हैं और आपको आवश्यक डेटा का चयन करने के लिए अपना कोड लिखते हैं, तो आपको SAX का उपयोग करने में सक्षम होना चाहिए। –

+0

@ user687543: SAX पार्सर XPath का समर्थन क्यों नहीं कर सकता? –

0

आप लग सकता है पर

pugixml बहुत, तेजी से सुविधाजनक और स्मृति कुशल XML दस्तावेज़ प्रसंस्करण सक्षम बनाता है। हालांकि, चूंकि पगिक्सएमएल में एक डोम पार्सर है, इसलिए यह XML दस्तावेज़ों को संसाधित नहीं कर सकता है जो स्मृति में फिट नहीं होते हैं; पार्सर भी एक गैर-मान्य है, इसलिए यदि आपको डीटीडी/स्कीमा सत्यापन की आवश्यकता है, तो लाइब्रेरी आपके लिए नहीं है

हालांकि, यह स्पष्ट रूप से एक स्ट्रीमिंग पार्सर नहीं है। मुझे पता है कि स्ट्रीमिंग और xpath आमतौर पर अच्छी तरह से जैव नहीं है (संभावित यादृच्छिक-पहुंच आवश्यकताओं के कारण)। Allthough, .NET में ever-famous XPathReader

0

सैक्सन-ईई XSLT या XQuery (का उपयोग करते हुए बड़े एक्सएमएल दस्तावेजों की स्ट्रीमिंग का समर्थन करता XPath :) का एक लोकप्रिय उपसमूह के लिये खाई स्ट्रीमिंग का बेहतर XQuery की तुलना में XSLT में समर्थित है पाट है लग रहा था)। http://www.saxonica.com/documentation/sourcedocs/streaming.xml

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