Nút XML DOM
Theo XML DOM, mọi thứ trong tài liệu XML đều 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
- Bình luận là nút bình luận
Ví dụ về DOM
Hãy 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ên là <bookstore>.
Tất cả các nút khác trong tài liệu đề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>.
Các nút con chứa một nút văn bản, mỗi nút "Tiếng Ý hàng ngày", "Giada De Laurentiis", "2005" và "30.00".
Văn bản luôn được lưu trữ trong các nút văn bản
Một lỗi phổ biến trong quá trình xử lý DOM là mong muốn một nút phần tử chứa văn bản.
Tuy nhiên, văn bản của nút phần tử được lưu trữ trong nút văn bản.
Trong ví dụ này: <year>2005</year> , nút phần tử <year> chứa 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 XML DOM
XML DOM xem tài liệu XML dưới dạng 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.
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 từ nút gốc và phân nhánh tới các nút văn bản ở cấp thấp nhất của cây:
Hình ảnh trên thể hiện tệp XML books.xml .
Nút cha mẹ, con cái và anh chị em
Các nút trong cây nút có mối quan hệ phân cấp với nhau.
Các thuật ngữ cha mẹ, con cái và anh chị em đượ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 chị em).
- Trong cây nút, nút trên cùng được gọi là nút gốc
- Mỗi nút, ngoại trừ nút gốc, có chính xác một nút cha
- Một nút có thể có số lượng nút con bất kỳ
- Một lá là một nút không có nút con
- Anh chị em là các nút có cùng cha mẹ
Hình ảnh sau đây minh họa một phần của cây nút và mối quan hệ giữa các nút:
Vì dữ liệu XML được cấu trúc ở dạng cây nên có thể duyệt qua nó mà không cần biết cấu trúc chính xác của cây cũng như không biết loại dữ liệu chứa trong đó.
Bạn sẽ tìm hiểu thêm về cách duyệt cây nút trong chương sau của hướng dẫn này.
Con Đầu - Con Cuối
Hãy xem đ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>.