Bài giảng Cơ sở dữ liệu Web và XML - Chương 4: XML

4.1 Tổng quan về XML

4.2Định nghĩa kiểu dữliệu -DTD

4.3 Ngôn ngữđịnh dạng

4.4 Liên kết

pdf159 trang | Chuyên mục: XML | Chia sẻ: dkS00TYs | Ngày: 14/10/2014 | Lượt xem: 1265 | Lượt tải: 5download
Tóm tắt nội dung Bài giảng Cơ sở dữ liệu Web và XML - Chương 4: XML, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
ên
Bao gồm thẻ tên của phần tử và tập các phần tử con của 
chúng
Phần tử
Đoạn chú thíchChú thích
Thuộc tính của phần tử. Giá trị thuộc tính đã loại bỏ dấu 
bao chuỗi
Thuộc tính
Nơi khởi đầu tài liệu cần chuyển dịchGốc tài liệu 
Mô tảNút
Chương 4. XML 4 - 121/
- Tạo tài liệu XSLT
XSL phải đặt trong cặp thẻ hay phần tử 
sử dụng bí danh cho không gian tên là xsl
4.3 Ngôn ngữ định dạng
<xsl:stylesheet
xmlns:xsl="">
…
Chương 4. XML 4 - 122/
- Tạo tài liệu XSLT
Quá trình tìm dữ liệu trong XML được duyệt từ phần tử gốc.
Ví dụ:
4.3 Ngôn ngữ định dạng
This is XML root.
Chương 4. XML 4 - 123/
- Tạo tài liệu XSLT
Phần tử được dùng để thế chỗ cho nơi 
dữ liệu XML sẽ được đặt vào tài liệu
4.3 Ngôn ngữ định dạng
Planets found…
Kết quả:
Planets found…
Chương 4. XML 4 - 124/
Tương tự như vậy cho các nút con cấp dưới
4.3 Ngôn ngữ định dạng
Chương 4. XML 4 - 125/
- Chỉ định mẫu so khớp với thuộc tính match 
Thuộc tính match dùng để yêu cầu một thẻ lệnh thực hiện theo 
một điều kiện dữ liệu thỏa mãn nào đó (, 
, , )
- So khớp phần tử gốc của dữ liệu XML (matching 
root)
Phần tử gốc của tài liệu XML được so khớp với ký tự “/”. 
4.3 Ngôn ngữ định dạng
Chương 4. XML 4 - 126/
- So khớp các phần tử (matching element)
Chúng ta có thể tìm, so khớp một phần tử bằng cách chỉ định 
tên của phần tử đó. 
Ví dụ
4.3 Ngôn ngữ định dạng
Chương 4. XML 4 - 127/
- So khớp các phần tử con
Ký tự “/” dùng làm dấu phân cách biểu diễn đường dẫn từ nút 
cha đến nút con trong dữ liệu XML.
Ví dụ
Ký tự “.” trong thuộc tính select yêu cầu thẻ chọn 
dữ liệu của nút hiện hành
4.3 Ngôn ngữ định dạng
Chương 4. XML 4 - 128/
- So khớp các phần tử con
Chúng ta cũng có thể dùng ký tự đại diện * để chọn tất cả các 
phần tử
4.3 Ngôn ngữ định dạng
Chương 4. XML 4 - 129/
- So khớp các phần tử cấp dưới (Descendant)
Nut//Nut_cap_duoi
chọn tất cả các phần tử “Nut_cap_duoi” bên dưới “Nut” không 
phân biệt mức độ lồng nhau của các phần tử
4.3 Ngôn ngữ định dạng
Chương 4. XML 4 - 130/
- So khớp thuộc tính
sử dụng ký hiệu so khớp thuộc tính @ lấy ra thuộc tính
4.3 Ngôn ngữ định dạng
Chương 4. XML 4 - 131/
- So khớp dòng chú thích (matching comment)
Để dò tìm và trích rút nội dung các dòng chú thích ta sử dụng 
biểu thức so khớp comment()
4.3 Ngôn ngữ định dạng
Chương 4. XML 4 - 132/
- So khớp các chỉ thị xử lý (process instruction)
hàm processing-instruction()
4.3 Ngôn ngữ định dạng
<xsl:stylesheet version = "1.0" 
xmlns:xsl="">
Tim thay chi thị xu ly.
Chương 4. XML 4 - 133/
- Sử dụng toán tử OR
toán tử OR để chỉ điều kiện kết hợp
4.3 Ngôn ngữ định dạng
Chương 4. XML 4 - 134/
- Kiểm tra so khớp bằng biểu thức ngoặc vuông []
ngoặc vuông để kiểm tra xem một điều kiện nào đó là
true hay false
Giá trị thuộc tính trong một chuỗi
Giá trị của một phần tử
Phần tử có chứa thuộc tính hay phần tử con hay không
Vị trí của một nút dữ liệu
4.3 Ngôn ngữ định dạng
Chương 4. XML 4 - 135/
- Kiểm tra so khớp bằng biểu thức ngoặc vuông []
Ví dụ:
so khớp và chọn ra phần tử PLANET có chứa phần tử con NAME:
so khớp và chọn ra mọi phần tử có chứa thuộc tính con NAME:
so khớp và chọn ra mọi phần tử chứa thuộc tính NAME hoặc MASS:
so khớp và chọn phần tử PLANET chứa thuộc tính UNITS mang giá trị
days:
4.3 Ngôn ngữ định dạng
Chương 4. XML 4 - 136/
- Chọn dữ liệu bằng thuộc tính select
thuộc tính select của để chọn mục dữ liệu
Ví dụ:
4.3 Ngôn ngữ định dạng
Chương 4. XML 4 - 137/
- Sắp xếp các phần tử dữ liệu
Phần tử cho phép chúng ta chọn mục dữ liệu để sắp 
xếp thông qua thuộc tính select
Ví dụ:
4.3 Ngôn ngữ định dạng
Chương 4. XML 4 - 138/
- Sắp xếp các phần tử dữ liệu
 sắp xếp dựa trên kiểu chuỗi,
để sắp xếp kiểu số chúng ta thêm thuộc tính data-type=”number”
vào phần tử . 
Chúng ta cũng có thể chỉ định kiểu sắp xếp tăng dần 
(Ascending) hay giảm dần (Descending) bằng cách thêm thuộc 
tính order.
Ví dụ: 
4.3 Ngôn ngữ định dạng
Chương 4. XML 4 - 139/
- Sử dụng xsl:if
phần tử để phát biểu một điều khiển lựa chọn
Ví dụ: khi gặp phần tử cuối cùng trong tài liệu thì in ra thẻ 
(phần tử định dạng tạo một đường ngang trong HTML).
4.3 Ngôn ngữ định dạng
Chương 4. XML 4 - 140/
- Sử dụng xsl:choose
 cho phép kiểm tra và chọn ra giá trị trong một 
danh sách các so khớp thỏa mãn điều kiện
Mỗi chọn lựa trong được chỉ định bằng phần tử
con và thuộc tính test của 
Ví dụ: định dạng tên của các hành tinh tùy thuộc vào màu sắc 
của nó. 
4.3 Ngôn ngữ định dạng
Chương 4. XML 4 - 141/
- Sử dụng xsl:choose
4.3 Ngôn ngữ định dạng
Chương 4. XML 4 - 142/
4.4.1 XPath
4.4.2 XLink
4.4 Liên kết
Chương 4. XML 4 - 143/
- Đường dẫn tuyệt đối
xuất phát từ phần tử gốc và được biểu diễn bằng dấu “/”
Ví dụ: Cho tài liệu XML như sau:
/AA. Phần tử được chọn là AA
/AA/BB/CC: phần tử CC là con của AA/BB
4.4.1 XPath
Chương 4. XML 4 - 144/
- Đường dẫn tổng thể
chuỗi “//” để tham chiếu đến tất cả các phần tử trong tài liệu.
Ví dụ:
//CC: chọn tất cả các phần tử CC
//BB/CC: chọn tất cả phần tử CC là con của BB
4.4.1 XPath
Chương 4. XML 4 - 145/
- Ký tự đại diện *
*: chọn tất cả các phần tử cùng thỏa mãn đường dẫn chỉ định.
Ví dụ:
/AA/BB/* chọn tất cả các phần tử có đường dẫn là AA/BB
/*/*/BB chọn tất cả các phần tử BB nằm ở cấp thứ 3
//* chọn tất cả các phần tử trong tài liệu.
4.4.1 XPath
Chương 4. XML 4 - 146/
- Chọn các phần tử theo vị trí bằng ngoặc vuông []
[]: chỉ định vị trí của môt phần tử XML cần chọn.
Ví dụ:
/AA/BB[1] chọn phần tử BB đầu tiên trong nhánh /AA
/AA/BB[last()] chọn phần tử BB cuối cùng trong nhánh /AA
4.4.1 XPath
Chương 4. XML 4 - 147/
- Chọn thuộc tính của một phần tử
@: chọn hay chỉ đường dẫn đến một thuộc tính bên trong phần 
tử XML.
Ví dụ:
//@id chọn tất cả các thuộc tính id trong tài liệu.
//BB[@id] chọn tất cả các phần tử BB có thuộc tính id
//BB[@name] chọn tất cả các phần tử BB có thuộc tính name
//BB[@*] chọn tất cả các phần tử BB có khai báo thuộc tính
//BB[@not *] chọn tất cả các phần tử BB không có thuộc tính
4.4.1 XPath
Chương 4. XML 4 - 148/
- Chọn phần tử dựa trên nội dung thuộc tính
dựa vào nội dung thuộc tính để xác định các phần tử.
Ví dụ:
//BB[@id=’b1’] chọn tất cả các phần tử BB trong tài liệu có thuộc 
tính id=’b1’.
- Chọn phần tử dựa trên số đếm 
//*[count(BB)=2] chọn tất cả các phần tử có chứa 2 phần tử BB.
//*[count(*)=2] chọn tất cả các phần tử có chứa 2 phần tử con.
4.4.1 XPath
Chương 4. XML 4 - 149/
- Chọn phần tử dựa trên tên của phần tử
dựa vào nội dung thuộc tính để xác định các phần tử.
Ví dụ:
//*[name()=’BB’] chọn tất cả các phần tử có tên là BB.
//*[starts-with(name(),’B’)] chọn tất cả các phần tử có tên bắt đầu 
là B.
//*[contains(name(),’B’)] chọn tất cả các phần tử có tên chứa ký 
tự B.
4.4.1 XPath
Chương 4. XML 4 - 150/
- Chọn phần tử dựa vào chiều dài tên thẻ
Hàm string-length() được dùng để trả về chiều dài của tên thẻ
Ví dụ:
//*[ string-length(name())=3] chọn tất cả các phần tử có chiều dài 
chuỗi tên là 3.
//*[ string-length(name())>3] chọn tất cả các phần tử có chiều dài 
chuỗi tên lớn hơn 3.
4.4.1 XPath
Chương 4. XML 4 - 151/
- Chọn nhóm các phần tử dựa trên điều kiện logic
Chúng ta có thể kết hợp nhiều nhóm lựa chọn hay đường dẫn 
XPath với nhau thông qua phép hợp bằng toán tử |
Ví dụ:
//BB | //CC chọn tất cả các phần tử BB hoặc CC trong tài liệu.
4.4.1 XPath
Chương 4. XML 4 - 152/
- Chọn các phần tử con trong đường dẫn
Chúng ta sử dụng thuộc tính child để chỉ định chọn phần tử con.
Ví dụ:
/AA tương đương với /child::AA chọn tất cả các phần tử AA từ
gốc.
/AA/BB hoặc /child::AA/BB tương đương với /child::AA/child::BB; 
kết quả là BB được chọn.
4.4.1 XPath
Chương 4. XML 4 - 153/
- Chọn phần tử con
Toán tử descendant được dùng để chọn các phần tử cấp dưới 
Ví dụ:
/AA/BB/descendant::* chọn tất cả các phần tử con của AA/BB
//BB/descendant::* chọn tất cả các phần tử con của BB
//BB/descendant::CC chọn tất cả các phần tử CC là con của BB
4.4.1 XPath
Chương 4. XML 4 - 154/
- Chọn phần tử cha
Toán tử parent được dùng để chọn phần tử cha của 1 phần tử
Ví dụ:
//CC/parent::* chọn tất cả các phần tử là cha của phần tử CC
//CC/parent::BB chọn tất cả các phần tử BB là cha của CC
- Chọn phần tử cấp trên
Toán tử ancestor chọn các phần tử cấp trên của phần tử chỉ 
định
Ví dụ:
//CC/ancestor::* chọn tất cả các phần tử nằm trên phần tử CC
4.4.1 XPath
Chương 4. XML 4 - 155/
- Chọn các phần tử cùng cấp kế tiếp
following-sibling: chọn các phần tử cùng cấp
Ví dụ:
//BB/ following-sibling::* chọn tất cả các phần tử tiếp sau BB.
- Chọn các phần tử cùng cấp phía trước
proceding-sibling: chọn các phần tử cùng cấp trước phần tử chỉ 
định.
Ví dụ:
//BB/ proceding-sibling::* chọn tất cả các phần tử cùng cấp nằm 
trước BB.
4.4.1 XPath
Chương 4. XML 4 - 156/
- Chọn các phần tử theo sau phần tử chỉ định
following: chọn các phần tử sau phần tử chỉ định.
Ví dụ:
//BB/following::* chọn tất cả các phần tử theo sau BB.
- Chọn các phần tử đứng trước phần tử chỉ định
Proceding: chọn các phần tử trước phần tử chỉ định.
Ví dụ:
//BB/proceding::* chọn tất cả các phần tử đứng trước BB.
4.4.1 XPath
Chương 4. XML 4 - 157/
- Chọn các phần tử cấp dưới và phần tử chỉ định
descedant-or-self: chọn các phần tử nằm dưới phần tử chỉ định 
kể cả phần tử chỉ định cũng được chọn.
Ví dụ:
//BB/descedant-or-self::* chọn tất cả các phần tử nằm dưới BB 
kể cả BB.
- Chọn các phần tử cấp trên và phần tử chỉ định
Ví dụ:
//BB/descedant-or-self::* chọn tất cả các phần tử nằm trên BB kể
cả BB.
4.4.1 XPath
Chương 4. XML 4 - 158/
- Chọn các phần tử dựa trên biểu thức tính toán
Chúng ta có thể sử dụng hàm position() để tính toán vị trí phần 
tử được chọn.
Ví dụ:
//BB[position() mod 2 = 0] chọn tất cả các phần tử BB có vị trí là
số chẵn.
/AA//BB[position() = 2] chọn các phần tử BB nằm dưới AA và có
vị trí bằng 2.
4.4.1 XPath
Chương 4. XML 4 - 159/
- Hyperlink trong HTML
HTML sử dụng phần tử để tạo liên kết đến một trang tài 
liệu
4.4.2 XLink

File đính kèm:

  • pdfBài giảng Cơ sở dữ liệu Web và XML - Chương 4 XML.pdf
Tài liệu liên quan