PHP में XML के साथ कार्य: DOMDocument, SimpleXML और XPath
XML (eXtensible Markup Language) डेटा आदान-प्रदान, कॉन्फ़िगरेशन भंडारण और बाहरी सेवाओं (RSS फ़ीड, SOAP, API) के साथ एकीकरण के लिए प्रमुख प्रारूपों में से एक बना हुआ है। PHP XML के साथ कार्य करने के लिए कई शक्तिशाली अंतर्निहित एक्सटेंशन प्रदान करता है। इस लेख में हम तीन मुख्य दृष्टिकोणों पर चर्चा करेंगे: DOMDocument (दस्तावेज़ ऑब्जेक्ट मॉडल), SimpleXML (सरल और सहज) और XPath (नेविगेशन के लिए क्वेरी भाषा)।
1. तैयारी: XML दस्तावेज़ का उदाहरण
सभी उदाहरणों के लिए हम एक ही XML फ़ाइल catalog.xml का उपयोग करेंगे:
<?xml version="1.0" encoding="UTF-8"?><catalog> <book id="1"> <title>PHP शुरुआती के लिए</title> <author>इवान पेत्रोव</author> <price currency="RUB">1200</price> </book> <book id="2"> <title>XML विस्तार से</title> <author>मारिया सिदोरोवा</author> <price currency="RUB">950</price> </book></catalog>2. DOMDocument — XML पर पूर्ण नियंत्रण
DOMDocument एक्सटेंशन W3C DOM Level 2 को लागू करता है। यह अधिकतम नियंत्रण देता है: किसी भी नोड, विशेषता और टेक्स्ट सामग्री को बनाया, हटाया, बदला जा सकता है। यह जटिल परिदृश्यों के लिए उपयुक्त है जहाँ संरचना पर सटीक नियंत्रण की आवश्यकता होती है।
XML लोड करना और पढ़ना
<?php$dom = new DOMDocument();$dom->load('catalog.xml'); // या loadXML($xmlString)
$books = $dom->getElementsByTagName('book');foreach ($books as $book) { $id = $book->getAttribute('id'); $title = $book->getElementsByTagName('title')->item(0)->nodeValue; $author = $book->getElementsByTagName('author')->item(0)->nodeValue; $price = $book->getElementsByTagName('price')->item(0)->nodeValue; echo "पुस्तक #$id: $title — $author, $price रूबल";}?>नया XML बनाना
<?php$dom = new DOMDocument('1.0', 'UTF-8');$root = $dom->createElement('catalog');$dom->appendChild($root);
$book = $dom->createElement('book');$book->setAttribute('id', '3');$title = $dom->createElement('title', 'PHP और XML');$book->appendChild($title);$root->appendChild($book);
echo $dom->saveXML(); // XML स्ट्रिंग आउटपुट करेगा// $dom->save('new_catalog.xml');?>3. SimpleXML — सरलता और सुविधा
SimpleXML एक हल्का एक्सटेंशन है जो XML को एक ऑब्जेक्ट में बदलता है जिसमें गुणों के माध्यम से तत्वों तक पहुँचा जा सकता है। त्वरित पढ़ने के लिए आदर्श, विशेषकर जब XML संरचना ज्ञात हो और उसमें बारीक समायोजन की आवश्यकता न हो।
SimpleXML के साथ XML पढ़ना
<?php$xml = simplexml_load_file('catalog.xml'); // या simplexml_load_string($xmlString)
foreach ($xml->book as $book) { $id = (string)$book['id']; $title = (string)$book->title; $author = (string)$book->author; $price = (string)$book->price; echo "पुस्तक #$id: $title — $author, $price रूबल";}?>SimpleXML के माध्यम से XML बनाना
<?php$xml = new SimpleXMLElement('<catalog></catalog>');$book = $xml->addChild('book');$book->addAttribute('id', '4');$book->addChild('title', 'SimpleXML Guide');$book->addChild('price', 800)->addAttribute('currency', 'RUB');
echo $xml->asXML();// $xml->asXML('output.xml');?>डेटा बदलना
<?php$xml = simplexml_load_file('catalog.xml');$xml->book[0]->price = 1300; // पहली पुस्तक की कीमत बदलें$xml->asXML('catalog_updated.xml');?>