यह सब इस बात पर निर्भर करता है कि काम की इकाई कितनी बड़ी है, लेकिन मुझे लगता है कि आप <product/>
उत्तराधिकार में प्रत्येक नोड का इलाज करने की कोशिश कर रहे हैं ।
उसके लिए, प्रत्येक नोड पर जाने के लिए XMLReader का उपयोग करना सबसे सरल तरीका होगा, फिर उन्हें एक्सेस करने के लिए SimpleXML का उपयोग करें। इस तरह, आप मेमोरी उपयोग को कम रखते हैं क्योंकि आप एक बार में एक नोड का इलाज कर रहे हैं और आप अभी भी सिम्पलेक्स के उपयोग में आसानी का लाभ उठाते हैं। उदाहरण के लिए:
$z = new XMLReader;
$z->open('data.xml');
$doc = new DOMDocument;
while ($z->read() && $z->name !== 'product');
while ($z->name === 'product')
{
$node = simplexml_import_dom($doc->importNode($z->expand(), true));
var_dump($node->element_1);
$z->next('product');
}
विभिन्न दृष्टिकोणों के पेशेवरों और विपक्षों का त्वरित अवलोकन:
XMLReader ही
पेशेवरों: तेज, छोटी मेमोरी का उपयोग करता है
विपक्ष: लिखने और डिबग करने के लिए अत्यधिक कठिन, उपयोगी कुछ भी करने के लिए बहुत सारे उपयोगकर्ता कोड की आवश्यकता होती है। उपयोगकर्तालैंड कोड धीमा है और त्रुटि का खतरा है। साथ ही, यह आपको बनाए रखने के लिए कोड की अधिक लाइनों के साथ छोड़ देता है
XMLReader + SimpleXML
पेशेवरों: बहुत स्मृति का उपयोग नहीं करता (केवल एक नोड को संसाधित करने के लिए आवश्यक मेमोरी) और SimpleXML है, जैसा कि नाम का तात्पर्य है, वास्तव में उपयोग करना आसान है।
विपक्ष: प्रत्येक नोड के लिए एक SimpleXMLElement ऑब्जेक्ट बनाना बहुत तेज़ नहीं है। आपको वास्तव में यह समझने के लिए बेंचमार्क करना होगा कि क्या यह आपके लिए समस्या है। हालांकि एक मामूली मशीन प्रति सेकंड एक हजार नोड्स को संसाधित करने में सक्षम होगी।
XMLReader + DOM
पेशेवरों: SimpleXML के रूप में ज्यादा के बारे में स्मृति का उपयोग करता है, और XMLReader :: का विस्तार () एक नया SimpleXMLElement बनाने की तुलना में तेज है। काश इसका उपयोग संभव simplexml_import_dom()
होता लेकिन यह उस मामले में काम नहीं करता
विपक्ष: डोम के साथ काम करने के लिए कष्टप्रद है। यह XMLReader और SimpleXML के बीच आधा है। XMLReader जितना जटिल और अटपटा नहीं है, लेकिन SimpleXML के साथ काम करने से प्रकाश वर्ष दूर है।
मेरी सलाह: SimpleXML के साथ एक प्रोटोटाइप लिखें, देखें कि क्या यह आपके लिए काम करता है। यदि प्रदर्शन सर्वोपरि है, तो DOM आज़माएँ। जितना हो सके XMLReader से दूर रहें। याद रखें कि आप जितना अधिक कोड लिखेंगे, आपके द्वारा बगों को पेश करने या प्रदर्शन प्रतिगमन शुरू करने की संभावना उतनी ही अधिक होगी।