Dom Parser - Nó sử dụng đối tượng dựa cách tiếp cận. nghĩa là, trước tiên nó tải toàn bộ XML trong bộ nhớ, chuyển đổi các nút XML thành các đối tượng và sau đó bắt đầu phân tích cú pháp chúng. Vì vậy, nó là khá chậm.
SAX và PULL Parser - họ sử dụng sự kiện dựa cách tiếp cận. Cả hai đều gần như giống nhau về mặt bộ nhớ và hiệu năng. Tuy nhiên, có một vài tình huống phân biệt khi sử dụng chúng như mô tả dưới đây.
Dom Parser - Sử dụng nó khi bạn cần phải Validate toàn bộ XML trước khi phân tích cú pháp. Không bao giờ sử dụng nó khi XML quá lớn và xác thực có thể bị xâm phạm. Khi bắt đầu phân tích cú pháp, nó phân tích cú pháp từ nút bắt đầu đến nút kết thúc. không có cách nào để phân tích chỉ các nút cụ thể.
SAX - Sử dụng nó khi bạn muốn phân tích cú pháp toàn bộ XML. Khi bắt đầu phân tích cú pháp, nó phân tích cú pháp từ nút bắt đầu đến nút kết thúc. không có cách nào để phân tích chỉ các nút cụ thể.
PULL - Sử dụng khi bạn không muốn phân tích cú pháp toàn bộ XML.Nó dễ thực hiện hơn SAX, bởi vì bạn không phải duy trì trạng thái của trình phân tích cú pháp của bạn. Bạn có thể kéo chỉ một nút cụ thể mà bạn quan tâm.
Đề nghị của tôi là - Cần xác nhận - Đi cho DOM, kích thước tập tin là nhỏ hoặc bạn không quan tâm đến phân tích của toàn bộ XML- Go cho KÉO, kích thước tập tin là lớn hoặc bạn cần phải phân tích cú pháp XML toàn bộ tập tin - Go cho SAX.
Nguồn
2014-07-02 10:40:41
Không phải là nó trái ngược với Sax và DOM? Dom cho phép chèn và xóa trong khi Sax chỉ là một trình phân tích cú pháp? Tham khảo: http://docs.oracle.com/javase/6/docs/api/org/w3c/dom/Document.html – Benjamin
Xin chào, quản trị viên, vui lòng chỉnh sửa câu trả lời (vì câu hỏi này có nhiều phiếu nhất) theo như trên chú thích: DOM ** cho phép ** các nút chèn/xóa, trong khi SAX ** không ** – radistao
Làm sao Sax nhanh hơn Pull? Đối với Pull, bạn thậm chí có thể ngừng phân tích cú pháp khi đọc, vì vậy điều đó có nghĩa là bạn có thể làm ít công việc hơn nếu cần ... –