Apache Xerces - Tổng quan về trình phân tích cú pháp DOM
Mô hình Đối tượng Tài liệu là một khuyến nghị chính thức của World Wide Web Consortium (W3C). Nó định nghĩa một giao diện cho phép các chương trình truy cập và cập nhật kiểu, cấu trúc và nội dung của các tài liệu XML. Các trình phân tích cú pháp XML hỗ trợ DOM, triển khai giao diện đó.
Sử dụng khi nào?
Bạn nên sử dụng trình phân tích cú pháp DOM khi -
Bạn cần biết nhiều về cấu trúc của một tài liệu.
Bạn cần di chuyển các phần của tài liệu xung quanh (ví dụ: bạn có thể muốn sắp xếp các phần tử nhất định).
Bạn cần sử dụng thông tin trong tài liệu nhiều lần.
Những gì bạn nhận được?
Khi bạn phân tích cú pháp tài liệu XML bằng trình phân tích cú pháp DOM, bạn sẽ lấy lại cấu trúc cây chứa tất cả các phần tử của tài liệu của bạn. DOM cung cấp nhiều chức năng khác nhau mà bạn có thể sử dụng để kiểm tra nội dung và cấu trúc của tài liệu.
Ưu điểm
DOM là một giao diện chung để thao tác các cấu trúc tài liệu. Một trong những mục tiêu thiết kế của nó là mã Java được viết cho một trình phân tích cú pháp tuân thủ DOM sẽ chạy trên bất kỳ trình phân tích cú pháp tuân thủ DOM nào khác mà không có thay đổi.
Giao diện DOM
DOM xác định một số giao diện Java. Dưới đây là các giao diện phổ biến nhất -
Node - Kiểu dữ liệu cơ sở của DOM.
Element - Phần lớn các đối tượng mà bạn sẽ đối phó là Nguyên tố.
Attr - Biểu diễn một thuộc tính của một phần tử.
Text - Nội dung thực tế của một Phần tử hoặc Attr.
Document- Đại diện cho toàn bộ tài liệu XML. Đối tượng Document thường được gọi là cây DOM.
Các phương pháp DOM phổ biến
Khi bạn đang làm việc với DOM, có một số phương pháp được sử dụng thường xuyên:
Document.getDocumentElement() - Trả về phần tử gốc của tài liệu.
Node.getFirstChild() - Trả về con đầu tiên của một Node đã cho.
Node.getLastChild() - Trả về con cuối cùng của một Node đã cho.
Node.getNextSibling() - Các phương thức này trả về người anh em tiếp theo của một Node nhất định.
Node.getPreviousSibling() - Các phương thức này trả về anh chị em trước của một Node nhất định.
Node.getAttribute(attrName) - Đối với một Node đã cho, trả về thuộc tính có tên được yêu cầu.