PHP में XML को साहचर्य सरणी में बदलें

Convert Xml Associative Array Php



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

आवश्यक कार्य

एक्सएमएल सामग्री को एक सहयोगी PHP सरणी में बदलने के लिए कुछ अंतर्निहित कार्यों का उपयोग किया जाता है। विभिन्न कार्यों के उद्देश्यों को नीचे समझाया गया है।







file_get_contents ():



यह फ़ंक्शन किसी भी XML डेटा को कनवर्ट करके स्ट्रिंग डेटा लौटाता है। यह किसी भी XML फ़ाइल नाम को तर्क के रूप में लेता है।



simplexml_load_string ():





यह फ़ंक्शन XML स्ट्रिंग डेटा को कनवर्ट करके XML ऑब्जेक्ट लौटाता है। यह XML स्ट्रिंग डेटा को एक तर्क के रूप में लेता है।

simplexml_load_file():



यह फ़ंक्शन XML फ़ाइल सामग्री को कनवर्ट करके XML ऑब्जेक्ट लौटाता है। यह XML फ़ाइल नाम को एक तर्क के रूप में लेता है।

SimpleXMLElement ():

इसका उपयोग XML डेटा से XML ऑब्जेक्ट बनाने के लिए किया जाता है। यह XML सामग्री मान को एक तर्क के रूप में लेता है।

json_encode ():

यह XML ऑब्जेक्ट को कनवर्ट करके JSON ऑब्जेक्ट देता है। यह XML ऑब्जेक्ट वेरिएबल को एक तर्क के रूप में लेता है।

json_decode ():

यह JSON डेटा को परिवर्तित करके सहयोगी PHP सरणी देता है। यह JSON ऑब्जेक्ट वैरिएबल को एक तर्क के रूप में लेता है।

एक्सएमएल फाइल बनाएं

XML डेटा को एक सहयोगी PHP सरणी में परिवर्तित करने का तरीका जानने के लिए आपको एक XML फ़ाइल बनाने या स्क्रिप्ट में XML डेटा को परिभाषित करने की आवश्यकता होगी। निम्नलिखित सामग्री के साथ course.xml नाम की एक XML फ़ाइल बनाएँ और इसे उस स्थान पर संग्रहीत करें जहाँ PHP स्क्रिप्ट है। फ़ाइल में मूल तत्व के अंतर्गत बाल तत्व होते हैं। तो, निम्न XML फ़ाइल को PHP सरणी में परिवर्तित करने के बाद एक द्वि-आयामी सहयोगी सरणी उत्पन्न होगी।

पाठ्यक्रम.एक्सएमएल

संस्करण='1.0'?>
>
>वेब प्रोग्रामिंग>
>6 महीने>
>
>
>पीएचपी प्रोग्रामिंग की खुशी>
>एलन फोर्ब्स>
>बेर द्वीप>
>
>
>पीएचपीनिन्जा के लिए MySQL नौसिखिए
टॉम बटलर और केविन यांकी
साइटप्वाइंट


हेड फर्स्ट PHP और MySQL
लिन बेघली और माइकल मॉरिसन
ओ रेली


उदाहरण -1: XML फ़ाइल सामग्री को त्रुटि की जाँच किए बिना एक सहयोगी सरणी में परिवर्तित करें

निम्न स्क्रिप्ट XML ऑब्जेक्ट बनाने के लिए file_get_contents() और simplexml_load_string() फ़ंक्शंस के उपयोग को दिखाती है। यहां, पाठ्यक्रम.एक्सएमएल फ़ाइल का उपयोग रूपांतरण के लिए किया जाता है जो पहले बनाया गया था। इसके बाद, xml फ़ाइल सामग्री को परिवर्तित करने के बाद सहयोगी सरणी प्राप्त करने के लिए json_encode() और json_decode() फ़ंक्शन का उपयोग किया जाता है। यदि XML सामग्री में कोई त्रुटि नहीं है, तो निम्न स्क्रिप्ट द्वारा कोई त्रुटि नहीं दिखाई जाएगी। यहाँ, |_+_| टैग का उपयोग सरणी को स्वरूपित तरीके से प्रिंट करने के लिए किया जाता है।



// मौजूदा XML फ़ाइल को परिभाषित करें
$xml = 'पाठ्यक्रम.एक्सएमएल';

// XML फ़ाइल की पूरी सामग्री को XML स्ट्रिंग के रूप में पढ़ें
$xmlडेटा = file_get_contents ($xml);

// XML स्ट्रिंग डेटा को XML ऑब्जेक्ट में बदलें
$xmlऑब्जेक्ट = simplexml_load_string ($xmlडेटा);

// XML ऑब्जेक्ट को JSON ऑब्जेक्ट में बदलें
$जेसनऑब्जेक्ट = json_encode ($xmlऑब्जेक्ट);

// JSON ऑब्जेक्ट को एक सहयोगी सरणी में बदलें
$assArray = json_decode ($जेसनऑब्जेक्ट, सच);

// सहयोगी सरणी की संरचना को प्रिंट करें
फेंक दिया '
  
';

?>

आउटपुट:

PHP स्क्रिप्ट निष्पादित करने के बाद निम्न आउटपुट दिखाई देगा। यहां, XML फ़ाइल, course.xml की सामग्री के आधार पर एक द्वि-आयामी सरणी उत्पन्न होती है।

उदाहरण -2: जाँच त्रुटि के साथ XML फ़ाइल सामग्री को एक सहयोगी सरणी में बदलें

एक्सएमएल को एक सहयोगी सरणी में परिवर्तित करते समय त्रुटि की जांच करना बेहतर होता है। यदि स्क्रिप्ट में त्रुटि जाँच लागू की जाती है, तो यह कोडर को कोड डीबग करने में मदद करेगा। निम्न स्क्रिप्ट त्रुटि प्रबंधन के साथ simplexml_load_file() फ़ंक्शन का उपयोग करके XML फ़ाइल सामग्री को एक सहयोगी सरणी में बदलने के तरीके दिखाती है। त्रुटि प्रबंधन को सक्षम करने के लिए libxml_use_internal_errors() फ़ंक्शन का उपयोग TRUE मान के साथ किया जाता है। यदि स्क्रिप्ट में उपयोग की गई XML फ़ाइल सामग्री में कोई त्रुटि है तो simplexml_load_file() फ़ंक्शन झूठी वापसी करेगा, और त्रुटि संदेश libxml_get_errors() फ़ंक्शन का उपयोग करके मुद्रित किया जाएगा। यदि XML फ़ाइल में कोई त्रुटि नहीं है, तो फ़ाइल की सामग्री ठीक से द्वि-आयामी साहचर्य सरणी में परिवर्तित हो जाएगी।



// उपयोगकर्ता त्रुटि प्रबंधन सक्षम करें
libxml_use_internal_errors (सच);

// एक्सएमएल ऑब्जेक्ट बनाएं
$ objXml = simplexml_load_file ('पाठ्यक्रम.एक्सएमएल');

// प्रिंट त्रुटि अगर XML ऑब्जेक्ट गलत लौटाता है
अगर ($ objXml === झूठा) {
फेंक दिया 'XML फ़ाइल को पार्स करने में त्रुटियाँ थीं।एन';
प्रत्येक के लिए( libxml_get_errors () जैसा $ त्रुटि) {
फेंक दिया $ त्रुटि->संदेश;
}
बाहर जाएं ;
}

// XML ऑब्जेक्ट को JSON ऑब्जेक्ट में बदलें
$ objJson = json_encode ($ objXml);
// JSON ऑब्जेक्ट को एक सहयोगी सरणी में बदलें
$assarr = json_decode ($ objJson, सच);

// सहयोगी सरणी की संरचना को प्रिंट करें
फेंक दिया '
';  
print_r ($assArray);
echo '
'
;

?>

आउटपुट:

PHP स्क्रिप्ट निष्पादित करने के बाद निम्न आउटपुट दिखाई देगा। यहाँ, XML फ़ाइल में कोई त्रुटि नहीं है। तो, XML फ़ाइल, course.xml की सामग्री के आधार पर पिछले उदाहरण की तरह एक द्वि-आयामी सरणी उत्पन्न हुई है।

उदाहरण -3: एक्सएमएल सामग्री को एक सहयोगी सरणी में कनवर्ट करें

निम्न स्क्रिप्ट SimpleXMLElement() फ़ंक्शन का उपयोग करके XML डेटा को एक सहयोगी सरणी में परिवर्तित करने का तरीका दिखाती है। स्क्रिप्ट में, XML सामग्री को $xml नामक एक चर में संग्रहीत किया जाता है जिसका उपयोग फ़ंक्शन के तर्क के रूप में किया जाता है, SimpleXMLElement ()। इसके बाद, xml फ़ाइल सामग्री को परिवर्तित करने के बाद सहयोगी सरणी प्राप्त करने के लिए json_encode() और json_decode() फ़ंक्शन का उपयोग किया जाता है।



// एक्सएमएल वैरिएबल को परिभाषित करें
$xml = <<


[ईमेल संरक्षित]

12/ए, धानमंडी
ढाका



[ईमेल संरक्षित]

१५६, आकृति
ढाका



[ईमेल संरक्षित]

21 / बी, मोगबाजार
ढाका



एक्सएमएल
;

// एक्सएमएल ऑब्जेक्ट बनाएं
$xmlऑब्जेक्ट = नयाSimpleXMLElement($xml);
// JSON ऑब्जेक्ट बनाएं
$जेसनऑब्जेक्ट = json_encode ($xmlऑब्जेक्ट);
// JSON ऑब्जेक्ट को एक सहयोगी सरणी में बदलें
$assArray = json_decode ($जेसनऑब्जेक्ट, सच);

// सहयोगी सरणी की संरचना को प्रिंट करें
फेंक दिया '
';  
print_r ($assarr);
echo '
'
;

?>

आउटपुट:

PHP स्क्रिप्ट निष्पादित करने के बाद निम्न आउटपुट दिखाई देगा। यहां, XML चर, $xml की सामग्री के आधार पर एक द्वि-आयामी सरणी उत्पन्न होती है।

निष्कर्ष:

XML सामग्री को एक सहयोगी सरणी में परिवर्तित करने के तीन अलग-अलग तरीके थे जो इस ट्यूटोरियल में दिखाए गए थे। यह पाठकों को एक्सएमएल डेटा के साथ काम करने का तरीका जानने में मदद करेगा और आसानी से PHP स्क्रिप्ट का उपयोग करके एक्सएमएल सामग्री से डेटा को पार्स करने में मदद करेगा।