XML - DOM

Các Document Object Model (DOM)là nền tảng của XML. Các tài liệu XML có một hệ thống phân cấp các đơn vị thông tin được gọi là các nút ; DOM là một cách mô tả các nút đó và mối quan hệ giữa chúng.

Tài liệu DOM là một tập hợp các nút hoặc các mẩu thông tin được tổ chức theo hệ thống phân cấp. Hệ thống phân cấp này cho phép nhà phát triển điều hướng qua cây để tìm kiếm thông tin cụ thể. Bởi vì nó dựa trên một hệ thống phân cấp thông tin, DOM được cho là dựa trên cây .

Mặt khác, XML DOM cũng cung cấp một API cho phép nhà phát triển thêm, chỉnh sửa, di chuyển hoặc xóa các nút trong cây tại bất kỳ thời điểm nào để tạo ứng dụng.

Thí dụ

Ví dụ sau (sample.htm) phân tích cú pháp một tài liệu XML ("address.xml") thành một đối tượng XML DOM và sau đó trích xuất một số thông tin từ nó bằng JavaScript -

<!DOCTYPE html>
<html>
   <body>
      <h1>TutorialsPoint DOM example </h1>
      <div>
         <b>Name:</b> <span id = "name"></span><br>
         <b>Company:</b> <span id = "company"></span><br>
         <b>Phone:</b> <span id = "phone"></span>
      </div>
      <script>
         if (window.XMLHttpRequest)
         {// code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp = new XMLHttpRequest();
         }
         else
         {// code for IE6, IE5
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
         }
         xmlhttp.open("GET","/xml/address.xml",false);
         xmlhttp.send();
         xmlDoc = xmlhttp.responseXML;

         document.getElementById("name").innerHTML=
            xmlDoc.getElementsByTagName("name")[0].childNodes[0].nodeValue;
         document.getElementById("company").innerHTML=
            xmlDoc.getElementsByTagName("company")[0].childNodes[0].nodeValue;
         document.getElementById("phone").innerHTML=
            xmlDoc.getElementsByTagName("phone")[0].childNodes[0].nodeValue;
      </script>
   </body>
</html>

Nội dung của address.xml như sau -

<?xml version = "1.0"?>
<contact-info>
   <name>Tanmay Patil</name>
   <company>TutorialsPoint</company>
   <phone>(011) 123-4567</phone>
</contact-info>

Bây giờ chúng ta hãy giữ hai tệp này sample.htmaddress.xml trong cùng một thư mục /xml và thực hiện sample.htmbằng cách mở nó trong bất kỳ trình duyệt nào. Điều này sẽ tạo ra kết quả sau.

Tại đây, bạn có thể thấy cách mỗi nút con được trích xuất để hiển thị giá trị của chúng.