एक्सएमएल डॉम ब्राउज़र विभेद

विभिन्न ब्राउज़रों ने XML DOM में खाली टेक्स्ट नोड को संसाधित करने के तरीके अलग हैं।

उदाहरण

नीचे दिए गए उदाहरण XML फ़ाइल का उपयोग करता है books.xml

फ़ंक्शन loadXMLDoc()बाहरी जावास्क्रिप्ट में स्थित, एक्सएमएल फ़ाइल को लोड करने के लिए उपयोग किया जाता है。

नोड सूची की लंबाई दिखाना
इस उदाहरण में एक नोड सूची की लंबाई दिखाई देती है। आईई और अन्य ब्राउज़रों में, परिणाम अलग है।
Ignore empty text between nodes
इस उदाहरण में नोड के nodeType की जांच की जाती है, और केवल एलीमेंट नोड को संसाधित किया जाता है。

DOM पार्सिंग में ब्राउज़र अंतर

सभी आधुनिक ब्राउज़र W3C DOM नियमों का समर्थन करते हैं।

हालांकि, ब्राउज़रों के बीच अंतर हैं। महत्वपूर्ण अंतर दो बातें हैं:

  • एक्सएमएल को लोड करने के तरीके
  • खाली और बदलने के संसाधन के तरीके

इसमेंपार्सिंग एक्सएमएल डॉम” इस चयन में, एक्सएमएल को लोड करने के विभिन्न तरीकों को समझाया गया है।

इस चयन में, हम खाली और बदलने के संसाधन के विभिन्न तरीकों को समझाएंगे।

DOM - खाली और बदलने

XML अक्सर नोड के बीच में बदलने या खाली अक्षरों को रखता है। यह सरल संपादक (जैसे कि नोटबुक) का उपयोग करते समय बहुत आम होता है।

नीचे दिए गए उदाहरण (कैस्टम एडिटर के द्वारा) में प्रत्येक पंक्ति के बीच में CR/LF है, प्रत्येक उपनोड के पहले दो खाली जगह हैं:

<book>
  <title>Harry Potter</title>
  <author>J K. Rowling</author>
  <year>2005</year>
  <price>29.99</price>
</book>

फायरफॉक्स और अन्य कुछ ब्राउज़र खाली खाली जगह या बदलने को टेक्स्ट नोड के रूप में संसाधित करेंगे, जबकि इंटरनेट एक्सप्लोरर ऐसा नहीं करेगा।

The following code snippet shows how many child nodes the root element has (of books.xml):

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.documentElement.childNodes;
document.write("Number of child nodes: " + x.length);

उदाहरण स्पष्टीकरण:

  • इस्तेमाल करके loadXMLDoc() इसे "books.xml" xmlDoc में लोड करें
  • शीर्ष एलिमेंट के उपनोड प्राप्त करें
  • Output the number of child nodes

The result depends on the browser used. Firefox outputs 9, while IE outputs 4.

TIY

Ignore empty text between nodes

If you want to ignore empty text nodes between element nodes, you need to check the node type. The element node type is 1:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.documentElement.childNodes;
for (i=0;i<x.length;i++)
{ 
if (x[i].nodeType==1)
  {// only process element nodes 
  document.write(x[i].nodeName);
  document.write("<br />");
  } 
}

उदाहरण स्पष्टीकरण:

  • इस्तेमाल करके loadXMLDoc() इसे "books.xml" xmlDoc में लोड करें
  • शीर्ष एलिमेंट के उपनोड प्राप्त करें
  • प्रत्येक उपनोड के नोड प्रकार की जाँच करें।यदि नोड प्रकार "1" है, तो यह एलिमेंट नोड है

TIY (सरल) या TIY (पूर्ण)