AZCode.vn AZCode

DOM trong XML

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

Một tài liệu DOM là một tập hợp gồm các node hoặc các phần thông tin được tổ chức trong một cấu trúc có thứ bậc. Cấu trúc này cho phép một lập trình viên điều hướng qua cấu trúc cây để tìm kiếm thông tin cụ thể. Bởi vì, nó được dựa trên một cấu trúc thông tin có thứ bậc, DOM được xem như là Tree Based.

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

Ví dụ

Ví dụ sau (sample.htm) phân tích cú pháp một tài liệu XML (address.xml) vào trong một đối tượng XML DOM và sau đó rút một số thông tin từ đó với 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 là:

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

Bây giờ, giữ hai file là sample.htmaddress.xml trong cùng thư mục /xml và thực thi sample.htm bằng việc mở nó trong bất cứ trình duyệt nào. Nó sẽ cho kết quả:

Kết quả XML DOM

Ở đây, bạn có thể thấy cách các node con được rút ra để hiển thị các giá trị của chúng.