पीएचपी एक्सएमएल DOM

इंटीग्रेटेड DOM पार्सर PHP में XML दस्तावेज़ का संभाल करने के लिए संभव बनाता है。

DOM क्या है?

W3C DOM HTML और XML दस्तावेज़ के लिए मानक ऑब्जैक्ट सेट और इन दस्तावेज़ की पहुँच और संचालन के लिए मानक इंटरफ़ेस प्रदान करता है。

W3C DOM को विभिन्न भागों (कोर, XML और HTML) और विभिन्न स्तरों (DOM Level 1/2/3) में विभाजित किया जाता है:

  • Core DOM - किसी भी संरचित दस्तावेज़ के लिए मानक ऑब्जैक्ट सेट को परिभाषित करता है
  • XML DOM - XML दस्तावेज़ के लिए मानक ऑब्जैक्ट सेट को परिभाषित करता है
  • HTML DOM - HTML दस्तावेज़ के लिए मानक ऑब्जैक्ट सेट को परिभाषित करता है

यदि आप XML DOM के बारे में अधिक जानना चाहते हैं, तो हमारे XML DOM ट्यूटोरियल

XML पार्सर

यदि आप XML दस्तावेज़ को पढ़ने और अद्यतन करने के लिए - एक XML दस्तावेज़ को बनाने और संभालने के लिए - आवश्यकता है, तो आपको XML पार्सर की आवश्यकता है。

दो प्रमुख XML पार्सर प्रकार हैं:

  • ट्री-आधारित पार्सर:इस पार्सर द्वारा XML दस्तावेज़ को ट्री संरचना में बदला जाता है। यह पूरे दस्तावेज़ का विश्लेषण करता है और डॉक्यूमेंट ऑब्जैक्ट मॉडल (DOM) जैसे ट्री में की एलीमेंट्स की पहुँच के लिए API प्रदान करता है。
  • घटना-आधारित पार्सर:XML दस्तावेज़ को एक शृंखला के रूप में देखता है। जब कोई विशेष घटना होती है, तो पार्सर फ़ंक्शन को बुलाता है ताकि इसे संभाला जा सके。

DOM पार्सर एक ट्री-आधारित पार्सर है。

नीचे के XML दस्तावेज़ फ़ाइल को देखिए:

<?xml version="1.0" encoding="ISO-8859-1"?>
<from>जॉन</from>

XML DOM XML को एक ट्री संरचना के रूप में देखता है:

  • स्तर 1: XML दस्तावेज़
  • स्तर 2: रूट एलीमेंट: <from>
  • स्तर 3: टेक्स्ट एलीमेंट: "जॉन"

स्थापित करना

DOM XML पार्सर PHP के कोर का हिस्सा हैं। इन फ़ंक्शनों का उपयोग करने के लिए किसी प्रतिस्थापन की आवश्यकता नहीं है。

XML फ़ाइल

हमारे उदाहरण में नीचे के XML फ़ाइल का उपयोग किया जाएगा:

<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>जॉर्ज</to>
<from>जॉन</from>
<heading>रीमाइंडर</heading>
<body>फ़र्माइना की बैठक को न मत भूलें!</body>
</note>

XML लोड और आउटपुट

हमें XML पार्सर को चालू करना, XML को लोड करना और इसे आउटपुट में देना होगा:

उदाहरण

<?php
$xmlDoc = new DOMDocument();
$xmlDoc->load("note.xml");
print $xmlDoc->saveXML();
?>

इस कोड का आउटपुट:

जॉर्ज जॉन रीमाइंडर फ़र्माइना को न मत भूलें!

यदि आप ब्राउज़र विंडो में स्रोत कोड को देखते हैं, तो नीचे के इन HTML को देखेंगे:

<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>जॉर्ज</to>
<from>जॉन</from>
<heading>रीमाइंडर</heading>
<body>फ़र्माइना की बैठक को न मत भूलें!</body>
</note>

उपरोक्त उदाहरण में, एक DOMDocument-ऑब्जैक्ट बनाया गया है और "note.xml" में एक्सएमएल इस डॉक्युमेंट ऑब्जैक्ट में लोड किया गया है。

saveXML() फ़ंक्शन आंतरिक एक्सएमएल डॉक्युमेंट को एक स्ट्रिंग में डालता है, इस प्रकार हम इसे आउटपुट कर सकते हैं。

XML सर्किल

हम एक्सएमएल पार्सर को शुरू करेंगे, एक्सएमएल को लोड करेंगे और <note> एलीमेंट के सभी एलीमेंट को सर्किल करेंगे:

उदाहरण

<?php
$xmlDoc = new DOMDocument();
$xmlDoc->load("note.xml");
$x = $xmlDoc->documentElement;
foreach ($x->childNodes AS $item)
  {
  print $item->nodeName . " = " . $item->nodeValue . "<br />";
  }
?>

इस कोड का आउटपुट:

#text = 
to = जॉर्ज
#text = 
from = जॉन
#text = 
heading = याद दिलाना
#text = 
body = बैठक को नहीं भूलें!
#text =

उपरोक्त उदाहरण में, आप देखते हैं कि प्रत्येक एलीमेंट के बीच खाली टेक्स्ट नोड हैं。

जब XML बनाया जाता है, तो यह आमतौर पर नोड के बीच खाली स्थान शामिल करता है।XML DOM पार्सर इन्हें सामान्य एलीमेंट के रूप में लेता है, अगर आप इन्हें नहीं ध्यान में रखते, तो कभी-कभी समस्या पैदा हो सकती है।

यदि आप XML DOM के बारे में अधिक जानना चाहते हैं, तो हमारे XML DOM ट्यूटोरियल