Nút DOM XML
Theo DOM XML, mọi thứ trong tài liệu XML là một nút :
- Toàn bộ tài liệu là một nút tài liệu
- Mỗi phần tử XML là một nút phần tử
- Văn bản trong các phần tử XML là các nút văn bản
- Mỗi thuộc tính là một nút thuộc tính
- Nhận xét là nút nhận xét
Ví dụ về DOM
Xem tệp XML sau ( books.xml ):
<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book category="cooking">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="children">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="web">
<title lang="en">XQuery Kick Start</title>
<author>James McGovern</author>
<author>Per Bothner</author>
<author>Kurt Cagle</author>
<author>James Linn</author>
<author>Vaidyanathan Nagarajan</author>
<year>2003</year>
<price>49.99</price>
</book>
<book category="web" cover="paperback">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
Nút gốc trong XML ở trên được đặt tên là <bookstore>.
Tất cả các nút khác trong tài liệu được chứa trong <bookstore>.
Nút gốc <bookstore> chứa 4 nút <book>.
Nút <book> đầu tiên chứa các nút con: <title>, <author>, <year> và <price>.
Mỗi nút con chứa một nút văn bản, "Everyday Italian", "Giada De Laurentiis", "2005" và "30.00".
Văn bản luôn được lưu trữ trong các mã văn bản
Một lỗi phổ biến trong xử lý DOM là mong đợi một nút phần tử chứa văn bản.
Tuy nhiên, văn bản của một nút phần tử được lưu trữ trong một nút văn bản.
Trong ví dụ này: <year> 2005 </year> , nút phần tử <year> giữ một nút văn bản có giá trị "2005".
"2005" không phải là giá trị của phần tử <year>!
Cây nút DOM XML
DOM XML xem một tài liệu XML như một cấu trúc cây. Cấu trúc cây được gọi là cây nút.
Tất cả các nút có thể được truy cập thông qua cây. Nội dung của chúng có thể được sửa đổi hoặc xóa, và các phần tử mới có thể được tạo ra.
Cây nút hiển thị tập hợp các nút và các kết nối giữa chúng. Cây bắt đầu ở nút gốc và phân nhánh ra các nút văn bản ở cấp thấp nhất của cây:
Hình ảnh trên đại diện cho tệp XML books.xml .
Node Cha mẹ, Con cái và Anh chị em
Các nút trong cây nút có mối quan hệ thứ bậc với nhau.
Các thuật ngữ cha mẹ, con cái và anh chị em ruột được sử dụng để mô tả các mối quan hệ. Các nút cha có con. Trẻ em cùng cấp được gọi là anh chị em (anh hoặc chị em).
- Trong cây nút, nút trên cùng được gọi là gốc
- Mọi nút, ngoại trừ gốc, có chính xác một nút cha
- Một nút có thể có bất kỳ số lượng nút con nào
- Một lá là một nút không có con
- Anh chị em là các nút có cùng cha mẹ
Hình ảnh sau minh họa một phần của cây nút và mối quan hệ giữa các nút:
Bởi vì dữ liệu XML được cấu trúc ở dạng cây, nó có thể được duyệt qua mà không cần biết cấu trúc chính xác của cây và không cần biết kiểu dữ liệu chứa bên trong.
Bạn sẽ tìm hiểu thêm về cách duyệt qua cây nút trong chương sau của hướng dẫn này.
Đứa con đầu lòng - Đứa con cuối cùng
Nhìn vào đoạn XML sau:
<bookstore>
<book category="cooking">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
</bookstore>
Trong XML ở trên, phần tử <title> là phần tử con đầu tiên của phần tử <book> và phần tử <price> là phần tử con cuối cùng của phần tử <book>.
Hơn nữa, phần tử <book> là nút cha của các phần tử <title>, <author>, <year> và <price>.