PHP XML ट्यूटोरियल: उदाहरण के साथ बनाएँ, पार्स करें, पढ़ें

⚡ स्मार्ट सारांश

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

  • 📄 XML क्या है: XML एक एक्सटेंसिबल मार्कअप लैंग्वेज है, जो टैग-आधारित प्रारूप है और आपको डेटा को संरचित और स्थानांतरित करने के लिए कस्टम टैग परिभाषित करने की अनुमति देता है।
  • 🌳 डीओएम: डॉक्यूमेंट ऑब्जेक्ट मॉडल एक XML या HTML दस्तावेज़ को एक ट्री के रूप में देखता है, जिससे कोड नोड्स को नेविगेट और संपादित कर सकता है।
  • 🔄 XML पार्सर: एक पार्सर XML दस्तावेज़ को DOM ऑब्जेक्ट में परिवर्तित करता है जिसे PHP उपयोग कर सकता है। Javaस्क्रिप्ट, या Python पढ़ और बदल सकता है।
  • 📖 XML पढ़ना: simplexml_load_file एक फ़ाइल को ऑब्जेक्ट में लोड करता है, इसलिए आप $xml->record->name जैसे तीर सिंटैक्स के साथ रिकॉर्ड तक पहुँच सकते हैं।
  • XML बनाना: DOMDocument क्लास createElement और appendChild का उपयोग करके एक-एक नोड करके दस्तावेज़ का निर्माण करती है, फिर save कमांड से फ़ाइल लिखती है।
  • SimpleXML बनाम DOM: SimpleXML पढ़ने में तेज़ है, जबकि DOMDocument सटीक निर्माण और जटिल हेरफेर के लिए उपयुक्त है।
  • 🤖 एआई सहायता: एआई उपकरण किसी विशिष्ट XML संरचना के लिए पार्सिंग कोड उत्पन्न कर सकते हैं और XML, JSON और PHP सरणियों के बीच रूपांतरण कर सकते हैं।

PHP और XML

एक्सएमएल क्या है?

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 का उपयोग करके 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

PHP का उपयोग करके XML दस्तावेज़ बनाएँ

movies_list.xml फ़ाइल खोलें।

PHP का उपयोग करके XML दस्तावेज़ बनाएँ

SimpleXML बनाम DOMDocument

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

पहलू SimpleXML DOMDocument
उपयोग की आसानी बहुत सरल; दस्तावेज़ नेस्टेड ऑब्जेक्ट्स की तरह व्यवहार करता है। अधिक विस्तृत, नोड-आधारित एपीआई
के लिए सबसे अच्छा पढ़ना और हल्का-फुल्का संपादन दस्तावेज़ बनाना और जटिल हेरफेर करना
पहुँच शैली $xml->रिकॉर्ड->नाम createElement() और appendChild()
एक्सपाथ समर्थन हाँ, ->xpath() के माध्यम से हां, DOMXPath क्लास के माध्यम से

एक व्यावहारिक नियम यह है कि फीड और सरल फाइलों को पढ़ने के लिए सबसे पहले SimpleXML का उपयोग करें, और जब आपको दस्तावेज़ बनाने, विशिष्ट स्थानों पर नोड्स डालने या किसी स्कीमा के विरुद्ध सत्यापन करने की आवश्यकता हो, तो DOMDocument पर स्विच करें।

अक्सर पूछे जाने वाले प्रश्न

दोनों ही संरचित डेटा संग्रहीत करते हैं, लेकिन XML टैग का उपयोग करता है और एट्रिब्यूट, कमेंट और स्कीमा को सपोर्ट करता है, जबकि JSON हल्का होता है और सीधे एरे और ऑब्जेक्ट में मैप होता है। JSON आमतौर पर API के लिए उपयोग किया जाता है; XML दस्तावेज़ों और कॉन्फ़िगरेशन के लिए उपयुक्त है।

SimpleXML या DOMDocument का उपयोग करके फ़ाइल लोड करें, नोड के मान या एट्रिब्यूट बदलें, और फिर उसे वापस लिखें। SimpleXML में, प्रॉपर्टी को एडिट करें और asXML('file.xml') फ़ंक्शन को कॉल करें; DOMDocument में, नोड को एडिट करें और save() फ़ंक्शन को कॉल करें।

XPath एक क्वेरी भाषा है जिसका उपयोग XML दस्तावेज़ में नोड्स का चयन करने के लिए किया जाता है। PHP में, SimpleXML के साथ $xml->xpath('//record/name') को कॉल करें, या DOMXPath क्लास का उपयोग करें, ताकि बिना खोजे मिलान करने वाले तत्वों को प्राप्त किया जा सके।ping पूरे पेड़ के माध्यम से।

जी हां। AI, simplexml_load_string, json_encode और json_decode का उपयोग करके कोड जनरेट कर सकता है, जिससे फॉर्मेट के बीच रूपांतरण हो सके और XML एट्रिब्यूट या मिश्रित सामग्री जैसे डेटा का स्पष्ट रूप से मिलान न होने पर उसे चिह्नित किया जा सके। परिणाम की पुष्टि करें।

जी हां। अपने XML का एक नमूना पेस्ट करें, और AI SimpleXML या DOMDocument कोड तैयार कर सकता है जो आपके द्वारा आवश्यक सटीक तत्वों और विशेषताओं को पढ़ेगा, जिसमें दोहराए गए रिकॉर्ड के लिए लूप भी शामिल हैं। इसे वास्तविक फ़ाइलों पर परीक्षण करें।

इस पोस्ट को संक्षेप में इस प्रकार लिखें: