Perbedaan Browser XML DOM

Peramban yang berbeda menangani node teks kosong di DOM XML dengan cara yang berbeda.

Contoh

Contoh di bawah ini menggunakan berkas XML books.xml.

Fungsi loadXMLDoc(), berada di JavaScript eksternal, untuk memuat berkas XML.

Menampilkan panjang daftar node
Contoh ini menampilkan panjang daftar node. Hasilnya berbeda di IE dan peramban lainnya.
Tolak node teks antara node
Contoh ini memeriksa nodeType, dan hanya menangani node elemen.

Perbedaan peramban dalam pemrosesan DOM

Semua peramban modern mendukung spesifikasi W3C DOM.

Meskipun demikian, ada perbedaan di antara peramban. Perbedaan yang penting ada dua:

  • Cara memuat XML
  • Cara menangani spasi dan baris kosong

di "Mengurai XML DOM” Bagian ini, sudah dijelaskan cara memuat XML yang berbeda.

Pada bagian ini, kita akan menjelaskan cara menangani spasi dan baris kosong yang berbeda.

DOM - Spasi dan Baris Kosong

XML sering mengandung baris kosong atau karakter spasi di antara node. Ini adalah situasi yang sering muncul saat menggunakan editor sederhana (seperti Notepad).

Contoh di bawah ini (diedit dengan Notepad) mengandung CR/LF di antara setiap baris, dan dua spasi di depan setiap sub-nodes:

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

Firefox, serta beberapa peramban lainnya, akan mengelola spasi kosong atau garis baru sebagai node teks, sedangkan Internet Explorer tidak seperti itu.

Kode potongan di bawah ini menunjukkan berapa banyak subnode yang dimiliki oleh root elemen (books.xml):

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.documentElement.childNodes;
document.write("Jumlah subnode: " + x.length);

Contoh penjelasan:

  • Dengan menggunakan loadXMLDoc() Buang "books.xml" di dalam xmlDoc
  • Ambil subnode root elemen
  • Menampilkan jumlah subnode

Hasilnya tergantung pada peramban yang digunakan. Firefox menampilkan 9, sementara IE menampilkan 4.

TIY

Tolak node teks antara node

Untuk menolak node teks kosong antara node elemen, periksa tipe node. Tipe node elemen adalah 1:

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

Contoh penjelasan:

  • Dengan menggunakan loadXMLDoc() Buang "books.xml" di dalam xmlDoc
  • Ambil subnode root elemen
  • Periksa tipe node setiap subnode. Jika tipe node adalah "1", maka itu adalah node elemen

TIY (Sederhana) atau TIY (Penuh)