XML DOM Tarayıcı Farkları

Farklı tarayıcılar, XML DOM'da boş metin düğümlerini işleme yöntemleri farklıdır.

Örnek

Aşağıdaki örnek, XML dosyasını kullanır books.xml.

Fonksiyon loadXMLDoc()Dışarıdaki JavaScript'te, XML dosyasını yüklemek için kullanılır.

Düğüm listesinin uzunluğunu göster
Bu örnek, bir düğüm listesinin uzunluğunu gösterir. IE ve diğer tarayıcılar arasında farklı sonuçlar alınır.
Nod arasındaki boş metni göz ardı et
Bu örnek, nodeType'ı kontrol eder ve sadece element düğümleri işler.

DOM çözümlemeindeki tarayıcı farklılıkları

Tüm modern tarayıcılar W3C DOM规范unu destekler.

Ancak, tarayıcılar arasında farklılıklar vardır. Önemli iki fark şunlardır:

  • XML'nin yüklenme yöntemleri
  • Boşluk ve satır değişikliklerinin işleme yöntemleri

İçinde bulunduğu "XML DOM AyrıştırmaBu bölüm, XML'nin farklı yüklenme yöntemlerini açıklamıştır.

Bu bölümde, boşluk ve satır değişikliklerinin farklı işleme yöntemlerini anlatacağız.

DOM - Boşluk ve Satır Değişiklikleri

XML genellikle düğümler arasında satır değişiklikleri veya boşluk karakterleri içerir. Bu, basit düzenleyiciler (örneğin, Not Defteri) kullanılırken sıkça karşılaşılan bir durumdur.

Aşağıdaki örnek (Not Defteri ile düzenlenmiştir) her satır arasında CR/LF içerir, her alt düğüm öncesinde iki boşluk içerir:

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

Firefox ve diğer bazı tarayıcılar, boş boşluk veya satır değişikliklerini metin düğüm olarak işlerken, Internet Explorer böyle yapmaz.

Aşağıdaki kod parçası, (books.xml'in) kök elementin ne kadar alt nodu olduğunu gösterir:

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

Örnek açıklama:

  • Kullanarak loadXMLDoc() "books.xml"xmlDoc" içinde yükleyin
  • Kök elementin alt nodlarını alın
  • Alt nod sayısını çıktı verin

Sonuç, kullanılan tarayıcıya bağlıdır. Firefox 9, IE ise 4 çıktı verir.

TIY

Nod arasındaki boş metni göz ardı et

Element nodları arasındaki boş metin nodlarını göz ardı etmek için nod türünü kontrol etmek gerekir. Element nod türü 1'dir:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.documentElement.childNodes;
for (i=0;i<x.length;i++)
{ 
if (x[i].nodeType==1)
  {// sadece element nodlarını işlemek 
  document.write(x[i].nodeName);
  document.write("<br />");
  } 
}

Örnek açıklama:

  • Kullanarak loadXMLDoc() "books.xml"xmlDoc" içinde yükleyin
  • Kök elementin alt nodlarını alın
  • Her alt nodun nod türünü kontrol edin. Nod türü "1" ise, bir element nodudur

TIY (basit) veya TIY (tam)