PHP XML ट्यूटोरियल: उदाहरण के साथ बनाएँ, पार्स करें, पढ़ें
⚡ स्मार्ट सारांश
PHP और XML मिलकर सिस्टमों के बीच डेटा को संरचित करने, संग्रहीत करने और आदान-प्रदान करने का काम करते हैं। यह विस्तृत विवरण XML, DOM और XML पार्सर के बारे में बताता है, फिर SimpleXML का उपयोग करके XML दस्तावेज़ को पढ़ने और DOMDocument क्लास का उपयोग करके इसे बनाने का तरीका दिखाता है, और अंत में यह बताता है कि इनमें से प्रत्येक का उपयोग कब करना है।

एक्सएमएल क्या है?
XML, एक्सटेंसिबल मार्कअप लैंग्वेज का संक्षिप्त रूप है।
XML का उपयोग डेटा को संरचित करने, संग्रहीत करने और एक सिस्टम से दूसरे सिस्टम में स्थानांतरित करने के लिए किया जाता है।
XML, HTML के समान है। इसमें ओपनिंग और क्लोजिंग टैग का उपयोग होता है। HTML के विपरीत, XML उपयोगकर्ताओं को अपने स्वयं के टैग परिभाषित करने की अनुमति देता है।
DOM क्या है?
DOM, डॉक्यूमेंट ऑब्जेक्ट मॉडल का संक्षिप्त रूप है।
यह एक क्रॉस-प्लेटफ़ॉर्म और भाषा-तटस्थ मानक है जो यह परिभाषित करता है कि डेटा को कैसे एक्सेस और हेरफेर किया जाए:
- एचटीएमएल
- एक्सएचटीएमएल
- एक्सएमएल
DOM XML का उपयोग XML दस्तावेज़ों तक पहुँचने और उनमें हेरफेर करने के लिए किया जाता है। XML दस्तावेज़ देखता है एक वृक्ष संरचना के रूप में।
एक्सएमएल पार्सर्स
एक XML पार्सर एक ऐसा प्रोग्राम है जो XML दस्तावेज़ को XML दस्तावेज़ ऑब्जेक्ट मॉडल (DOM) ऑब्जेक्ट में अनुवादित करता है।
इसके बाद XML DOM ऑब्जेक्ट को निम्नलिखित तरीके से बदला जा सकता है: Javaलिखी हुई कहानी, Python, पीएचपी और अन्य भाषाएँ।
कीवर्ड CDATA, जो (अनपार्स्ड) कैरेक्टर डेटा का संक्षिप्त रूप है, का उपयोग XML दस्तावेज़ को पार्स करते समय "<" और ">" जैसे विशेष वर्णों को अनदेखा करने के लिए किया जाता है।
XML का उपयोग क्यों करें?
- SOAP और REST जैसी वेब सेवाएं सूचनाओं के आदान-प्रदान के लिए XML प्रारूप का उपयोग करती हैं। XML क्या है और यह कैसे काम करता है, यह जानना एक डेवलपर के रूप में आपको प्रतिस्पर्धात्मक लाभ देता है, क्योंकि आधुनिक अनुप्रयोग वेब सेवाओं का भरपूर उपयोग करते हैं।
- XML दस्तावेज़ों का उपयोग किसी एप्लिकेशन की कॉन्फ़िगरेशन सेटिंग्स को संग्रहीत करने के लिए किया जा सकता है।
- यह आपको अपने स्वयं के कस्टम टैग बनाने की अनुमति देता है, जिससे यह अधिक लचीला हो जाता है।
XML दस्तावेज़ उदाहरण
मान लीजिए कि आप विकास कर रहे हैं...ping एक ऐसा एप्लिकेशन जो वेब सेवा से XML प्रारूप में डेटा प्राप्त करता है।
नीचे XML दस्तावेज़ का एक नमूना दिया गया है।
<?xml version="1.0" encoding="utf-8"?> <employees status = "ok"> <record man_no = "101"> <name>Joe Paul</name> <position>CEO</position> </record> <record man_no = "102"> <name>Tasha Smith</name> <position>Finance Manager</position> </record> </employees>
यहाँ,
- “ ” XML संस्करण और उपयोग की जाने वाली एन्कोडिंग को निर्दिष्ट करता है।
- “ ” मूल तत्व है.
- “ … " चाइल्ड एलिमेंट्स हैं, प्रत्येक कर्मचारी रिकॉर्ड के लिए एक।
PHP का उपयोग करके XML कैसे पढ़ें
अब हम वह कोड लिखेंगे जो कर्मचारियों के XML दस्तावेज़ को पढ़ेगा और परिणामों को वेब ब्राउज़र में प्रदर्शित करेगा। index.php
<?php $xml = simplexml_load_file('employees.xml'); echo '<h2>Employees Listing</h2>'; $list = $xml->record; for ($i = 0; $i < count($list); $i++) { echo '<b>Man no:</b> ' . $list[$i]->attributes()->man_no . '<br>'; echo 'Name: ' . $list[$i]->name . '<br>'; echo 'Position: ' . $list[$i]->position . '<br><br>'; } ?>
यहाँ,
- “$xml = simplexml_load_file('employees.xml');” simplexml_load_file फ़ंक्शन का उपयोग करके employees.xml नामक फ़ाइल को लोड करता है और उसकी सामग्री को $xml नामक वेरिएबल में असाइन करता है।
- “$list = $xml->record;” रिकॉर्ड नोड्स की सामग्री प्राप्त करता है।
- “for ($i = 0; $i < count(…)…”” वह for लूप है जो ऐरे को पढ़ता है और परिणाम आउटपुट करता है।
- “$list[$i]->attributes()->man_no;” तत्व की man_no विशेषता को पढ़ता है
- “$list[$i]->name;” नाम चाइल्ड तत्व का मान पढ़ता है
- “$list[$i]->position;” स्थिति चाइल्ड तत्व का मान पढ़ता है
XML रीडर का परीक्षण करना
मान लीजिए कि आपने index.php फ़ाइल को phptuts/xml फ़ोल्डर में सहेजा है, तो उस फ़ोल्डर में जाएँ। URL http://localhost/phptuts/xml/index.php
PHP का उपयोग करके XML दस्तावेज़ कैसे बनाएं
अब हम देखेंगे कि PHP का उपयोग करके XML दस्तावेज़ कैसे बनाया जाता है।
निम्नलिखित कोड PHP की अंतर्निहित क्लास DOMDocument का उपयोग करके एक XML दस्तावेज़ बनाता है।
<?php $dom = new DOMDocument(); $dom->encoding = 'utf-8'; $dom->xmlVersion = '1.0'; $dom->formatOutput = true; $xml_file_name = 'movies_list.xml'; $root = $dom->createElement('Movies'); $movie_node = $dom->createElement('movie'); $attr_movie_id = new DOMAttr('movie_id', '5467'); $movie_node->setAttributeNode($attr_movie_id); $child_node_title = $dom->createElement('Title', 'The Campaign'); $movie_node->appendChild($child_node_title); $child_node_year = $dom->createElement('Year', 2012); $movie_node->appendChild($child_node_year); $child_node_genre = $dom->createElement('Genre', 'Comedy'); $movie_node->appendChild($child_node_genre); $child_node_ratings = $dom->createElement('Ratings', 6.2); $movie_node->appendChild($child_node_ratings); $root->appendChild($movie_node); $dom->appendChild($root); $dom->save($xml_file_name); echo "$xml_file_name has been successfully created"; ?>
यहाँ,
- “$dom = new DOMDocument();” DOMDocument क्लास का एक इंस्टेंस बनाता है।
- “$dom->encoding = 'utf-8';” दस्तावेज़ एन्कोडिंग को utf-8 पर सेट करता है
- “$dom->xmlVersion = '1.0';” संस्करण संख्या 1.0 निर्दिष्ट करता है
- “$dom->formatOutput = true;” यह सुनिश्चित करता है कि आउटपुट अच्छी तरह से फ़ॉर्मेट किया गया है
- “$root = $dom->createElement('Movies');” Movies नामक रूट नोड बनाता है
- “$attr_movie_id = new DOMAttr('movie_id', '5467');” मूवी नोड के movie_id एट्रिब्यूट को परिभाषित करता है।
- “$dom->createElement('ElementName', 'ElementValue')” एक चाइल्ड नोड बनाता है। ElementName एलिमेंट का नाम निर्दिष्ट करता है, जैसे Title। ElementValue चाइल्ड नोड का मान सेट करता है, जैसे The Campaign।
- “$root->appendChild($movie_node);” मूवी नोड को रूट नोड Movies में जोड़ता है।
- “$dom->appendChild($root);” रूट नोड को XML दस्तावेज़ में जोड़ता है।
- “$dom->save($xml_file_name);” XML फ़ाइल को वेब सर्वर की रूट निर्देशिका में सहेजता है।
- “echo “$xml_file_name सफलतापूर्वक बनाया गया है”;” सफलता का संदेश प्रदर्शित करता है।
XML का परीक्षण करना Creator
मान लीजिए कि आपने create_movies_list.php फ़ाइल को phptuts/xml फ़ोल्डर में सहेजा है, तो उस फ़ोल्डर में जाएँ। URL http://localhost/phptuts/xml/create_movies_list.php
movies_list.xml फ़ाइल खोलें।
SimpleXML बनाम DOMDocument
PHP XML के साथ काम करने के दो मुख्य तरीके प्रदान करता है। SimpleXML तब सबसे अच्छा होता है जब आपको मुख्य रूप से डेटा पढ़ने की आवश्यकता होती है, जबकि DOMDocument दस्तावेज़ बनाने और उनमें व्यापक संपादन करने के लिए बेहतर नियंत्रण प्रदान करता है। नीचे दी गई तालिका इन दोनों की तुलना करती है।
| पहलू | SimpleXML | DOMDocument |
|---|---|---|
| उपयोग की आसानी | बहुत सरल; दस्तावेज़ नेस्टेड ऑब्जेक्ट्स की तरह व्यवहार करता है। | अधिक विस्तृत, नोड-आधारित एपीआई |
| के लिए सबसे अच्छा | पढ़ना और हल्का-फुल्का संपादन | दस्तावेज़ बनाना और जटिल हेरफेर करना |
| पहुँच शैली | $xml->रिकॉर्ड->नाम | createElement() और appendChild() |
| एक्सपाथ समर्थन | हाँ, ->xpath() के माध्यम से | हां, DOMXPath क्लास के माध्यम से |
एक व्यावहारिक नियम यह है कि फीड और सरल फाइलों को पढ़ने के लिए सबसे पहले SimpleXML का उपयोग करें, और जब आपको दस्तावेज़ बनाने, विशिष्ट स्थानों पर नोड्स डालने या किसी स्कीमा के विरुद्ध सत्यापन करने की आवश्यकता हो, तो DOMDocument पर स्विच करें।



