Thư viện tri thức trực tuyến
Kho tài liệu với 50,000+ tài liệu học thuật
© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Các hàm API XPath của Java Thực hiện truy vấn XML từ các chương trình Java ppt
Nội dung xem thử
Mô tả chi tiết
Các hàm API XPath của Java
Thực hiện truy vấn XML từ các chương trình Java
Elliotte Rusty Harold, Kỹ sư phần mềm, Polytechnic University
Tóm tắt:
Viết các biểu thức XPath dễ hơn rất nhiều nhiều so với việc viết mã chuyển hướng
Mô hình đối tượng tài liệu (Document Object Model - DOM) chi tiết. Khi bạn cần
rút trích thông tin từ tài liệu XML thì cách nhanh nhất và đơn giản nhất là nhúng
biểu thức XPath vào bên trong chương trình Java™. Java 5 giới thiệu gói
java.xml.xpath, một thư viện độc lập mô hình đối tượng XML dùng để truy vấn
các tài liệu XML với XPath.
27/06/2007 - Từ các góp ý của người đọc, tác giả đã cập nhật các biểu thức XPath
đã được biên dịch (tham khảo phần mã ngắn ở Ví dụ 3).
25/08/2008 - Từ các góp ý của người đọc, tác giả đã thay
"http://www.example.org/books" thành "http://www.example.com/books" trong Ví
dụ 6, không gian tên (namespace) được đề cập đến trong đoạn văn trước Ví dụ 9,
và Ví dụ 9.
Nếu bạn gửi một ai đó mua cho bạn một chai sữa thì bạn sẽ đề nghị như thế nào
đến người đó để nhờ họ mua cho bạn? "Làm ơn mua hộ tôi một chai sữa" hay là
nói "Đi ra ngoài thông qua cửa trước. Rẽ trái ở phần vỉa hè dành cho người đi bộ.
Đi bộ qua ba ngã tư. Rẽ phải. Đi bộ thêm một đoạn nữa. Rẽ phải và đi vào cửa
hàng. Đi tới gian thứ tư. Đi bộ khoảng năm mét rồi đi xuống gian dưới. Rẽ trái.
Cầm lấy một hộp sữa. Mang hộp sữa ra bàn thanh toán. Thanh toán tiền cho chai
sữa đó. Và sau đó đi ngược lại đoạn đường vừa đi để đi về nhà bạn." Điều này thật
là nực cười. Hầu hết đứa trẻ đều đủ thông minh để biết cách mang hộp sữa về nhà
với một lời chỉ dẫn đơn giản "Làm ơn mua hộ tôi một chai sữa".
Các ngôn ngữ truy vấn và cơ chế tìm kiếm của máy tính cũng tương tự như nhau.
Việc "Tìm bản sao của Cryptonomicon" dễ dàng hơn là việc viết ra một cấu trúc
logic chi tiết để tìm kiếm một số cơ sở dữ liệu. Bởi vì các thao tác tìm kiếm có
logic rất giống nhau nên bạn có thể đưa ra các ngôn ngữ tổng quát để có thể thực
hiện câu lệnh như "Tìm tất cả các quyển sách của tác giả Neal Stephenson," và sau
đó viết một cơ chế xử lý các truy vấn đó dựa vào các kho dữ liệu nào đó.
XPath
Trong rất nhiều ngôn ngữ truy vấn, Ngôn ngữ Truy vấn Có cấu trúc (SQL) là ngôn
ngữ được thiết kế và cho phép thực hiện truy vấn trên các cơ sở dữ liệu quan hệ.
Có một số ít các ngôn ngữ truy vấn bao gồm Ngôn ngữ truy vấn đối tượng (OOL)
và XQuery. Tuy nhiên, chủ đề chính của bài viết này là về XPath cho nên ngôn
ngữ truy vấn được thiết kế để thực hiện xử lý truy vấn trên các tài liệu XML. Ví
dụ, một truy vấn XPath đơn giản là tìm ra các tiêu đề của tất cả các quyển sách
trong tài liệu của tác giả Neal Stephenson, truy vấn phải trông có dạng như sau:
//book[author="Neal Stephenson"]/title
Ngược lại, cơ chế tìm kiếm DOM thuần túy cho phép có thông tin cho dưới dạng
như trong Ví dụ 1:
Ví dụ 1. Mã DOM để tìm tất cả các tiêu đề của các phần tử book có giá trị
Neal Stephenson
ArrayList result = new ArrayList();
NodeList books = doc.getElementsByTagName("book");
for (int i = 0; i < books.getLength(); i++) {
Element book = (Element) books.item(i);
NodeList authors = book.getElementsByTagName("author");
boolean stephenson = false;
for (int j = 0; j < authors.getLength(); j++) {
Element author = (Element) authors.item(j);
NodeList children = author.getChildNodes();
StringBuffer sb = new StringBuffer();