Mengurai XML DOM

Sebagian besar browser mempunyai parser XML yang bawaan untuk membaca dan mengoperasikan XML.

Parser mengkonversi XML menjadi objek yang dapat diakses JavaScript.

Contoh

Contoh yang disediakan CodeW3C.com bebas browser dan platform. Contoh ini dapat dijalankan di semua browser modern.

Memuat dan memproses berkas XML
Memuat dan memproses string XML

Memproses XML

Seluruh browser modern mempunyai parser XML yang bawaan untuk membaca dan mengoperasikan XML.

Parser membaca XML ke memori dan mengkonversikannya menjadi objek DOM XML yang dapat diakses oleh JavaScript.

Parser XML Microsoft berbeda dengan parser di browser lain. Parser Microsoft mendukung pemuat XML berkas dan string XML (teks), sementara browser lain menggunakan parser yang terpisah. Meski demikian, semua parser mengandung fungsi untuk mengelilingi pohon XML, mengakses, memasukkan, dan menghapus nod.

Dalam tutorial ini, kami akan menjelaskan bagaimana cara membuat skrip yang dapat berjalan di IE dan browser lainnya.

Memuat XML melalui parser XML Microsoft

Parser XML Microsoft terdapat secara bawaan di Internet Explorer 5 dan versi yang lebih tinggi.

Kode JavaScript berikut memuat dokumen XML ("books.xml) Memuat parser:

xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.load("books.xml");

Pengertian kode:

  • Baris pertama membuat objek dokumen XML Microsoft kosong.
  • baris kedua menutup pemuatan asinkron, sehingga parser tidak akan melanjutkan eksekusi skrip sampai dokumen sepenuhnya dimuat
  • baris ketiga memberitahu parser untuk memuat dokumen bernama "books.xml"

Kode JavaScript berikut memuat string bernama txt ke parser:

xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.loadXML(txt);

Keterangan:loadXML() Metode digunakan untuk memuat string (teks), sedangkan load() Untuk memuat berkas.

parser XML di Firefox dan browser lainnya

Kode JavaScript berikut memuat dokumen XML ("books.xml) Memuat parser:

xmlDoc=document.implementation.createDocument("","",null);
xmlDoc.async="false";
xmlDoc.load("books.xml");

Pengertian kode:

  • baris pertama membuat objek dokumen XML kosong
  • baris kedua menutup pemuatan asinkron, sehingga parser tidak akan melanjutkan eksekusi skrip sampai dokumen sepenuhnya dimuat
  • baris ketiga memberitahu parser untuk memuat dokumen bernama "books.xml"

Kode JavaScript berikut memuat string bernama txt ke parser:

parser=new DOMParser();
xmlDoc=parser.parseFromString(txt,"text/xml");

Pengertian kode:

  • baris pertama membuat objek dokumen XML kosong
  • baris kedua memberitahu parser untuk memuat string bernama txt

Keterangan:Internet Explorer menggunakan loadXML() metode untuk mengurai string XML, sementara browser lain menggunakan DOMParser objek.

Penguraian berkas XML - Sebuah contoh yang bebas browser

Contoh berikut mengurai dokumen XML ("books.xml) Memuat parser XML:

<html>
<body>
<script type="text/javascript">
try //Internet Explorer
  {
  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
  }
catch(e)
  {
  try //Firefox, Mozilla, Opera, dll.
    {
    xmlDoc=document.implementation.createDocument("","",null);
    }
  catch(e) {alert(e.message)}
  }
try 
  {
  xmlDoc.async=false;
  xmlDoc.load("books.xml");
  document.write("xmlDoc is loaded, ready for use");
  }
catch(e) {alert(e.message)}
</script>
</body>
</html>

TIY

Error: Akses Antar Domain

Karena alasan keamanan, browser modern saat ini tidak mengijinkan akses antar domain.

Artinya, halaman web serta berkas XML yang diusaha dimuat harus berada di server yang sama.

Berkas XML yang dibuka di contoh CodeW3C.com berada di domain CodeW3C.com.

Jika Anda ingin menggunakan contoh di atas di halaman web Anda sendiri, Anda harus menempatkan berkas XML di server Anda sendiri. Jika tidak, xmlDoc.load() akan menghasilkan kesalahan "Akses ditolak".

Penguraian string XML - Sebuah contoh yang bebas browser

Kode berikut memuat dan mengurai sebuah string XML:

<html>
<body>
<script type="text/javascript">
text="<bookstore>"
text=text+"<book>";
text=text+"<title>Harry Potter</title>";
text=text+"<author>J K. Rowling</author>";
text=text+"<year>2005</year>";
text=text+"</book>";
text=text+"</bookstore>";
try //Internet Explorer
  {
  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
  xmlDoc.async="false";
  xmlDoc.loadXML(text);
  }
catch(e)
  {
  try //Firefox, Mozilla, Opera, dll.
    {
    parser=new DOMParser();
    xmlDoc=parser.parseFromString(text,"text/xml");
    }
  catch(e) {alert(e.message)}
  }
document.write("xmlDoc is loaded, ready for use");
</script>
</body>
</html>

TIY

Keterangan:Internet Explorer menggunakan metode loadXML() untuk mengurai string XML, sementara peramban lain menggunakan Objek DOMParser.