1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng tích hợp dữ liệu và XML chương 07 XQuery

6 400 1

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Nội dung

04/04/2013 Nội dung Giới thiệu Ví dụ Biểu thức FLWOR XQuery Hiển thị kết lồng danh sách HTML Thuật ngữ XQuery Cú pháp XQuery Nguyễn Hồng Phương Email: phuong.nguyenhong@hust.edu.vn Site: http://is.hut.edu.vn/~phuongnh Bộ môn Hệ thống thông tin Viện Công nghệ thông tin Truyền thông Đại học Bách Khoa Hà Nội Giới thiệu Ví dụ books.xml Được xây dựng dựa biểu thức XPath Được hỗ trợ hầu hết CSDL Là khuyến cáo W3C XQuery ñược thiết kế ñể truy vấn liệu XML, tương tự SQL với bảng XQuery ngôn ngữ tìm kiếm trích rút phần tử thuộc tính từ tài liệu XML Everyday Italian Giada De Laurentiis 2005 30.00 Harry Potter J K Rowling 2005 29.99 Ví dụ books.xml (tiếp) XQuery Kick Start James McGovern Per Bothner Kurt Cagle James Linn Vaidyanathan Nagarajan 2003 49.99 XQuery sử dụng hàm ñể trích rút liệu từ tài liệu XML Sử dụng hàm doc() ñể mở file xml doc("books.xml") Sử dụng biểu thức ñường dẫn ñể duyệt qua phần tử ví dụ: chọn tất phần tử title: Learning XML Erik T Ray 2003 39.95 doc("books.xml")/bookstore/book/title trích rút Learning XML 04/04/2013 Biểu thức FLWOR XQuery sử dụng vị từ ñể giới hạn liệu ñược trích rút Biểu thức ñường dẫn: doc("books.xml")/bookstore/book[price>30]/title ví dụ: Biểu thức FLWOR: doc("books.xml")/bookstore/book[price30 return $x/title Harry Potter J K Rowling 2005 29.99 Cùng cho kết quả: XQuery Kick Start Learning XML Hiển thị kết lồng danh sách HTML Sắp xếp kết quả: for $x in doc("books.xml")/bookstore/book/title order by $x return $x for $x in doc("books.xml")/bookstore/book where $x/price>30 order by $x/title return $x/title { for $x in doc("books.xml")/bookstore/book/title order by $x return {$x} } FLWOR: For, Let, Where, Order by, Return XQuery Kick Start 10 Thuật ngữ XQuery Hiển thị kết lồng danh sách HTML Nút Giá trị nguyên tố Item Mối quan hệ nút { for $x in doc("books.xml")/bookstore/book/title order by $x return {data($x)} } Everyday Italian Harry Potter Learning XML XQuery Kick Start 11 12 04/04/2013 Nút Có loại nút XQuery Giá trị nguyên tố phần tử thuộc tính text không gian tên thị xử lý comment tài liệu (gốc) Là nút nút cha nút Ví dụ: J K Rowling "en" Item giá trị nguyên tố nút Coi tài liệu XML Nút gốc nút tài liệu 13 Mối quan hệ nút 14 Cú pháp XQuery Nút cha Quy tắc cú pháp Biểu thức ñiều kiện Biểu thức so sánh phần tử thuộc tính có nút cha Nút nút có 0, nhiều nút Nút anh em có nút cha Nút tổ tiên nút cha, nút cha nút cha Nút hậu duệ nút con, nút nút 15 Biểu thức ñiều kiện Quy tắc cú pháp XQuery Phân biệt chữ hoa chữ thường Phần tử, thuộc tính, biến phải tên XML hợp lệ Giá trị chuỗi kí tự ñể cặp nháy ñơn nháy kép Biến ñược ñặt tên bắt ñầu kí tụ $, theo sau tên biến Chú thích ñược ñặt cặp dấu hai chấm : ví dụ 16 if then else for $x in doc("books.xml")/bookstore/book return if ($x/@category="CHILDREN") then {data($x/title)} else {data($x/title)} kết quả: Everyday Italian Harry Potter Learning XML XQuery Kick Start :chú thích: 17 18 04/04/2013 Biểu thức so sánh Thêm phần tử thuộc tính vào kết So sánh chung: =, !=, = So sánh giá trị: eq, ne, lt, le, gt, ge Ví dụ: Có thể thêm phần tử thuộc tính vào kết for $x in doc("books.xml")/bookstore/book/title order by $x return $x biểu thức trả true thuộc tính q ñó có giá trị >10 $bookstore//book/@q > 10 biểu thức sau trả true có thuộc tính q ñược trả biểu thức, giá trị phải lớn 10 Nếu có nhiều q ñược trả về, có lỗi XQuery Kick Start $bookstore//book/@q gt 10 19 Thêm phần tử HTML text 20 Biểu thức sinh kết sau: Bookstore { for $x in doc("books.xml")/bookstore/book order by $x/title return {data($x/title)} Category: {data($x/@category)} } Bookstore Everyday Italian Category: COOKING Harry Potter Category: CHILDREN Learning XML Category: WEB XQuery Kick Start Category: WEB 21 Thêm thuộc tính vào phần tử HTML 22 Biểu thức sinh kết sau: Bookstore Bookstore Everyday Italian Harry Potter Learning XML XQuery Kick Start { for $x in doc("books.xml")/bookstore/book order by $x/title return {data($x/title)} } 23 24 04/04/2013 Tìm kiếm lọc phần tử Mệnh ñề for Quan sát biểu thức FLWOR: for $x in (1 to 5) return {$x} for $x in doc("books.xml")/bookstore/book where $x/price>30 order by $x/title return $x/title 1 2 3 4 5 for (tùy chọn) bind biến với item trả biểu thức let (tùy chọn) where (tùy chọn): xác ñịnh tiêu chuẩn order by (tùy chọn): xác ñịnh thứ tự xếp kết return: xác ñịnh ñược trả Dùng to ñể xác ñịnh số lần lặp for $x at $i in doc("books.xml")/bookstore/book/title return {$i} {data($x)} 1 2 3 4 Everyday Italian Harry Potter XQuery Kick Start Learning XML Dùng từ khóa at ñể ñếm vòng lặp 25 26 Mệnh ñề let Có thể có nhiều biểu thức, phân cách dấu phẩy for $x in (10,20), $y in (100,200) return x={$x} and y={$y} x=10 x=10 x=20 x=20 and and and and Cho phép khởi tạo biến tránh lặp biểu thức nhiều lần let $x := (1 to 5) return {$x} 1 5 y=100 y=200 y=100 y=200 27 Mệnh ñề where 28 Mệnh ñề order by Dùng ñể xác ñịnh nhiều tiêu chuẩn Xác ñịnh thứ tự xếp kết where $x/price>30 and $x/price

Ngày đăng: 23/01/2016, 00:40

TỪ KHÓA LIÊN QUAN