Thứ Năm, 31 tháng 7, 2014

What is the difference between SAXParser and XMLReader

SAXParser : 
-Sử dụng mô hình kéo
-các phương thức parser của SAXParser chỉ ủy thác cho một XMLReader nội bộ và thuận tiện hơn
-SAXParser quét file Xml từ trên xuống,nên không tốn nhiều bộ nhớ ,áp dụng được với những file XML có dung lượng lớn.
-Code ít

SAXParserFactory sfactory = SAXParserFactory.newInstance();
SAXParser parser = sfactory.newSAXParser();
parser.parse(new File(filename), new DocHandler());


XmlReader:-
-sử dụng mô hình đẩy
 - duyệt qua các phần tử XML một nội dung cùng lúc, trong khi bạn đang xem xét giá trị và chuyển đến các phần tử (element) tiếp theo. Do vậy, nó tiêu thụ bộ nhớ rất ít và chỉ nắm giữ các yếu tố hiện tại và làm cho nó trở nên nhanh hơn.
-Nhiêu code hơn

SAXParserFactory sfactory = SAXParserFactory.newInstance();
SAXParser parser = sfactory.newSAXParser();
XMLReader xmlparser = parser.getXMLReader();
xmlparser.setContentHandler(new DocHandler());
xmlparser.parse(new InputSource("test1.xml"));   

Nhận xét:Tùy vào từng trường hợp mà ta sử dụng SAXParser hay XMLReader ,trong một số trường hợp nâng cao ta phải sử dụng XMLReader như:

-Thiết lập tính năng không đạt tiêu chuẩn để thực hiện
-Thiết lập các lớp khác nhau như ContentHandler, EntityResolver hoặc ErrorHandler
-Chuyển đổi xử lý trong khi phân tích cú pháp





Không có nhận xét nào:

Đăng nhận xét