Pagkakaiba ng Browser ng XML DOM

May iba't ibang paraan ang mga browser sa pagproseso ng walang laman na text node sa XML DOM.

Halimbawa

Ang halimbawa na ito ay gumagamit ng file na XML books.xml.

Function loadXMLDoc(),nasa labas ng JavaScript, na ginagamit para sa pag-load ng file na XML.

Ipakita ang haba ng listahan ng node
Ang halimbawa na ito ay nagpapakita ng haba ng listahan ng node. Ang resulta ay magkakaiba sa IE at sa ibang mga browser.
Ikwentohin ang mga walang laman na node sa pagitan
Ang halimbawa na ito ay nagtsekyu sa nodeType ng node, at ipinaproseso lamang ang element node.

Pagkakaiba ng mga browser sa pagpaliwanag ng DOM

Ang lahat ng modernong browser ay sumusuporta sa W3C DOM规范.

Gayunpaman, may pagkakaiba ang mga browser. Ang mahalagang pagkakaiba ay dalawa:

  • Paraan ng pag-load ng XML
  • Paraan ng pagproseso ng walang laman at pampalit-linang

Sa “Parusa ng XML DOM” Ang Seksyon na ito, ay ipinapaliwanag ang iba't ibang paraan ng pag-load ng XML.

Sa Seksyon na ito, aking ituturo ang iba't ibang paraan ng pagproseso ng walang laman at pampalit-linang.

DOM - Walang laman at pampalit-linang

Ang XML ay kalimitang may napapalit na linya o puti sa pagitan ng mga node. Ito ay isang pangkaraniwang sitwasyon kapag ginagamit ang simpleng editor (gaya ng notepad).

Ang mga halimbawa (ginawa ng notepad) ay may CR/LF sa pagitan ng bawat linya, at may dalawang puti sa bawat bawat sub-node:

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

Firefox, atipan na ilang mga browser, ay magpaproseso ng walang laman na puti o pampalit-linang bilang text node, habang ang Internet Explorer ay hindi gayon.

Ang sumusunod na code snippet ay nagpapakita kung gaano karami ang mga anak na node ng (books.xml) na root element:

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

Halimbawa na ipinapaliwanag:

  • Gamit ang loadXMLDoc() Pakitaan ang "books.xml" Load sa xmlDoc
  • Hanapin ang mga anak ng root element
  • Ipalabas ang bilang ng mga anak na node

Ang resulta ay depende sa nagamit na browser. Ang Firefox ay nagluluto ng 9, habang ang IE ay nagluluto ng 4.

TIY

Ikwentohin ang mga walang laman na node sa pagitan

Kung gusto mong ikwento ang mga walang laman na text node sa pagitan ng mga element node, kailangan mong suriin ang uri ng node. Ang uri ng element node ay 1:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.documentElement.childNodes;
mag-isa (i=0;i<x.length;i++)
{ 
kung (x[i].nodeType==1)
  {// lamang iproseso ang mga element node 
  document.write(x[i].nodeName);
  document.write("<br />");
  } 
}

Halimbawa na ipinapaliwanag:

  • Gamit ang loadXMLDoc() Pakitaan ang "books.xml" Load sa xmlDoc
  • Hanapin ang mga anak ng root element
  • Suriin ang uri ng bawat sub-node ng node. Kung ang uri ng node ay "1", ito ay isang element node

TIY (simple) O TIY (kompleto)