Phân tích XML

Một phần của tài liệu xây dựng ứng dụng tra cứu thông tin tìm đường xe buýt kết hợp nhận diện giọng nói (Trang 51 - 52)

- Truy vấn phức tạp:

3.1.4.Phân tích XML

Khi kết nối đến các Google Maps API WebService, kết quả trả về có thể là tập tin XML hoặc JSON. Chương trình chọn XML làm kiểu kết quả trả về.

Một nhiệm vụ của chương trình là phân tích tập tin xml kết quả trả về của các API webservice để trích xuất nội dung. Có nhiều cơ chế để phân tích một tài liệu xml bằng ngôn ngữ Java trong Android.

Mỗi một mô hình phân tích đều có ưu nhược điểm riêng. Mô hình phân tích hướng đối tượng mang lại khả năng tìm kiếm. Trong khi mô hình phân tích heo hướng sự kiện duyệt tài liệu từ trên xuống dưới một chiều, chủ yếu dùng để đọc xml là chính.

Hai loại giao diện để phân tích XML cơ bản là:

• Giao diện phân tích dạng Mô hình đối tượng tài liệu (Document Object Doom), viết tắt là DOM.

• Giao diện phân tích API đơn giản cho XML – viết tắt là SAX.

Giao diện DOM:

Giao diện DOM là một giao diện dễ hiểu nhất. Nó phân tích toàn bộ tài liệu XML và kiến thiết một cấu trúc hoàn chỉnh đại diện cho bản tài liệu.

Bộ phân tích DOM được gọi là DocumentBuilder, vì nó tạo nên một hình thức đại diện cho Document trong bộ nhớ javax.xml.parsers.DocumentBuilder.

Giao diện SAX:

Giaodiện SAX được gọi là SAXParser. Khác với bộ phân tích DOM, bộ

SAXParcer không tạo ra một hình thức đại diện của tài liệu XML trong bộ nhớ và vì

Những phương thức chủ yếu trong giao diện bao gồm:

• Phương thức startDocument(): Được gọi khi bắt đầu tài liệu. • Phương thức endDocument(): Được gọi khi kết thút tài liệu. • Phương thức startElement(): Được gọi khi bắt đầu một thẻ. • Phương thức endElement(): Được gọi khi kết thút một thẻ.

Sử dụng SAX bằng cách tạo một lớp kế thừa từ lớp DefaultHandler và override các phương thức:

characters(char[] ch, int start, int length): Con trỏ đang duyệt đến nội

dung của mỗi thẻ.

startElement(String uri, String localName, String qName, Attributes atttr):

Con trỏ duyệt đến đầu thẻ.

endElement(String uri, String localName, String qName): Con trỏ duyệt

đến kết thúc thẻ.

Con trỏ của XML SAX sẽ duyệt lần lược từ đầu tài liệu, đến vị trí tương ứng nó sẽ gọi phương thức tương ứng, nhiệm vụ phải cài đặt các câu lệnh nhận biết con trỏ đang ở vị trí nào để lấy dữ liệu thích hợp.

Một phần của tài liệu xây dựng ứng dụng tra cứu thông tin tìm đường xe buýt kết hợp nhận diện giọng nói (Trang 51 - 52)