मुझे कुछ जटिल एक्सपैथ प्रश्नों सहित सी # में काफी बड़ी एक्सएमएल फाइलों (यहां बड़े पैमाने पर एक गीगाबाइट के ऊपर होने पर) पर कुछ प्रसंस्करण करने की आवश्यकता है। मेरी समस्या यह है कि मैं सामान्य रूप से सिस्टम.एक्सएमएल पुस्तकालयों के माध्यम से इसे सामान्य तरीके से करता हूं, इससे पहले कि यह कुछ भी करता है, इससे पहले कि यह फ़ाइल कुछ भी करता है, जिससे स्मृति को इस आकार की फाइलों के साथ समस्या हो सकती है।.NET में बहुत बड़ी XML फ़ाइलों के साथ XPath का सर्वोत्तम उपयोग कैसे करें?
मैं सभी सिर्फ उन्हें पढ़ने और डेटा उन में निहित क्वेरी करने पर फ़ाइलों को अपडेट करने की आवश्यकता नहीं है। कुछ XPath प्रश्न काफी शामिल हैं और माता-पिता-बच्चे के प्रकार के रिश्ते के कई स्तरों पर जाते हैं - मुझे यकीन नहीं है कि यह डेटा को ब्लॉक के रूप में स्मृति में लोड करने के बजाय स्ट्रीम रीडर का उपयोग करने की क्षमता को प्रभावित करेगा या नहीं। हालांकि यह एक छोटे से जटिल लगता है
एक तरह से मैं यह काम करने की देख सकते हैं, सरल विश्लेषण एक धारा-आधारित दृष्टिकोण का उपयोग कर और शायद XSLT परिवर्तनों है कि मैं फ़ाइलों में बाद में चला सकते में XPath बयान लपेटकर प्रदर्शन करने के लिए है।
वैकल्पिक रूप से मुझे पता है कि कुछ तत्व हैं जो XPath क्वेरी नहीं चलेंगे, इसलिए मुझे लगता है कि मैं दस्तावेज़ को मूल पेड़ संरचना के आधार पर छोटे टुकड़ों की एक श्रृंखला में तोड़ सकता हूं, जो शायद काफी छोटा हो सकता है बहुत अधिक विनाश के बिना स्मृति में प्रक्रिया।
मैं यहां अपने उद्देश्य की व्याख्या करने, इसलिए यदि मैं सामान्य दृष्टिकोण के मामले में पूरी तरह से गलत पेड़ भौंकने कर रहा हूँ की कोशिश की है मुझे यकीन है कि आप लोगों को मुझे सही सेट कर सकते हैं हूँ ...
XPathDocument एक हल्के वजन वर्ग भी है। –
XPathDocument के साथ समस्या यह है कि पूरा दस्तावेज़ स्मृति में लोड किया जाएगा। –