Bài giảng Cơ sở dữ liệu web và XML - Chương 4: XML - Hồ Văn Phi
Tóm tắt Bài giảng Cơ sở dữ liệu web và XML - Chương 4: XML - Hồ Văn Phi: ...h sử dụng từ khóa SYSTEM trong chỉ thị khai báo . 4.2 Định nghĩa kiểu dữ liệu - DTD Chương 4. XML 4 - 46/ 4.2.1 Định nghĩa dữ liệu - DTD ngoại dùng riêng Ví dụ: 4.2 Định nghĩa kiểu dữ liệu - DTD Sam Smith 15 Tomatoes Chương 4. XML 4 - 47/ 4.2.1 Định nghĩa dữ liệu - DTD ngoại dùng ... DTD Tên định danh duy nhất trong tài liệu XMLID Đại diện cho một danh sách mà các thuộc tính được gắnEnumerated Tên tham chiếu của thực thể (cũng phải khai báo trong DTD) ENTITY Tham chiếu các thực thể (những thực thể này cũng phải được khai báo trong định nghĩa DTD) ENTITIES Dữ liệu ký ...ĩa một lớp bắt đầu bằng dấu chấm (.), đến tên lớp Ví dụ: RED_ITALIC dưới đây là một lớp mang kiểu thuộc tính bao gồm chữ màu đỏ và in nghiêng 4.3 Ngôn ngữ định dạng Chương 4. XML 4 - 110/ 4.3.1 CSS - Nhóm các định nghĩa kiểu vào một lớp hr {color: sienna} p {margin-left: 20px} body {backgr...
ương 4. XML 4 - 84/
4.2.3 Thuộc tính (attribute)
cho phép định nghĩa nhiều thuộc tính
Ví dụ
4.2 Định nghĩa kiểu dữ liệu - DTD
<!DOCTYPE DOCUMENT [
<!ATTLIST CUSTOMER
OWES CDATA “0”
LAYAWAY CDATA “0”
DEFAULTS CDATA “0”>
]>
Chương 4. XML 4 - 85/
4.2.3 Thuộc tính (attribute)
4.2 Định nghĩa kiểu dữ liệu - DTD
Sam Smith
15
August 22, 2009
Tomatoes
John
16
August 22, 2009
Apple
..
Chương 4. XML 4 - 86/
4.2.3 Thuộc tính (attribute)
- #REQUIRED
Yêu cầu người sử dụng phần tử DTD liên quan đến thuộc tính thì
phải gán trị cho thuộc tính trước khi sử dụng
ví dụ: phải cung cấp thuộc tính OWES khi sử dụng phần tử
4.2 Định nghĩa kiểu dữ liệu - DTD
Chương 4. XML 4 - 87/
4.2.3 Thuộc tính (attribute)
4.2 Định nghĩa kiểu dữ liệu - DTD
<!DOCTYPE DOCUMENT [
<!ATTLIST CUSTOMER
OWES CDATA #REQUIRED>
]>
Sam Smith
15
August 22, 2009
Tomatoes
Chương 4. XML 4 - 88/
4.2.3 Thuộc tính (attribute)
- #IMPLIED
không bắt buộc người dùng phải gán trị cho thuộc tính
- #FIXED
chỉ định một giá trị cố định và bắt buộc cho thuộc tính
ví dụ: khai báo thuộc tính LANGUAGE bằng từ khóa #FIXED và
gán “EN” cố định cho nó.
4.2 Định nghĩa kiểu dữ liệu - DTD
Chương 4. XML 4 - 89/
4.2.3 Thuộc tính (attribute)
4.2 Định nghĩa kiểu dữ liệu - DTD
<!DOCTYPE DOCUMENT [
<!ATTLIST CUSTOMER
LANGUAGE CDATA #FIXED “EN”>
]>
Sam Smith
15
August 22, 2009
Tomatoes
Chương 4. XML 4 - 90/
4.2.3 Thuộc tính (attribute)
- Kiểu CDATA
kiểu dữ liệu ký tự thuần text và phi định dạng
không thể sử dụng các ký tự đặc biệt như <, “ hay &
có thể dùng các tham chiếu thực thể cơ bản
Ví dụ:
4.2 Định nghĩa kiểu dữ liệu - DTD
<!ATTLIST CUSTOMER
OWES CDATA “0”
LAYAWAY CDATA “0”
DEFAULTS CDATA “0”>..
Chương 4. XML 4 - 91/
4.2.3 Thuộc tính (attribute)
- Kiểu liệt kê (Enumerated)
khai báo kiểu liệt kê được qui định bằng một danh sách
các giá trị có thể gán cho thuộc tính.
giá trị thuộc tính phải phù hợp với cách đặt tên của XML
ví dụ khai báo kiểu liệt kê cho thuộc tính CREDIT_OK.
Thuộc tính này chỉ cho phép nhận một trong hai giá trị
“TRUE” và “FALSE” và trị mặc định là “TRUE”.
4.2 Định nghĩa kiểu dữ liệu - DTD
Chương 4. XML 4 - 92/
4.2.3 Thuộc tính (attribute)
4.2 Định nghĩa kiểu dữ liệu - DTD
<!DOCTYPE DOCUMENT [
<!ATTLIST CUSTOMER
CREDIT_OK (TRUE | FALSE) “TRUE”>
]>
Sam Smith
15
August 22, 2009
Tomatoes
..
Chương 4. XML 4 - 93/
4.2.3 Thuộc tính (attribute)
- Kiểu ID
dùng làm tên duy nhất để định danh một phần tử nào đó
trong tài liệu XML
giá trị kiểu ID phải theo qui tắc đặt tên của XML (1234 là
không hợp lệ mà phải là C12345)
ta không thể sử dụng kiểu ID với khai báo #FIXED cho
thuộc tính mà thường khai báo với #REQUIRED
Ví dụ:
4.2 Định nghĩa kiểu dữ liệu - DTD
Chương 4. XML 4 - 94/
4.2.3 Thuộc tính (attribute)
4.2 Định nghĩa kiểu dữ liệu - DTD
<!DOCTYPE DOCUMENT [
<!ATTLIST CUSTOMER
CUSTOMER_ID ID #REQUIRED>
]>
Sam Smith
15
August 22, 2009
Tomatoes
..
Chương 4. XML 4 - 95/
4.2.3 Thuộc tính (attribute)
- Kiểu IDREF
cho phép xác định thông tin về quan hệ giữa các phần tử
thuộc tính có kiểu IDREF nắm giữ giá trị ID của các phần
tử khác
Ví dụ, giả sử chúng ta muốn thiết lập quan hệ cha con giữa
hai phần tử không nằm lồng nhau trong cấu trúc của tài liệu
chúng ta định nghĩa thuộc tính có kiểu IDREF cho một thẻ và
gán giá trị ID của thẻ cha cho nó
4.2 Định nghĩa kiểu dữ liệu - DTD
Chương 4. XML 4 - 96/
4.2.3 Thuộc tính (attribute)
4.2 Định nghĩa kiểu dữ liệu - DTD
<!DOCTYPE DOCUMENT [
<!ATTLIST CUSTOMER
CUSTOMER_ID ID #REQUIRED
EMPLOYED_ID IDREF #IMPLIED>
]>
Sam Smith
15
August 22, 2009
Tomatoes
<CUSTOMER CUSTOMER_ID = “C345675”
EMPLOYED_ID = “C12345” >
John
16
August 22, 2009
Apple
..
Chương 4. XML 4 - 97/
4.2.3 Thuộc tính (attribute)
- Kiểu thực thể (ENTITY)
thuộc tính được gán trị là tên của một thực thể do chúng ta
khai báo trước đó
ENTITY hữu dụng khi chúng ta dùng để khai báo các thực
thể của riêng và dùng nó để gán cho thuộc tính; ví dụ chúng
ta có thể khai báo thực thể mang tên SIGNATURE_HOME
và SIGNATURE_WORK dạng chữ ký
Ví dụ:
4.2 Định nghĩa kiểu dữ liệu - DTD
Chương 4. XML 4 - 98/
4.2.3 Thuộc tính (attribute)
4.2 Định nghĩa kiểu dữ liệu - DTD
<!DOCTYPE DOCUMENT [
<!ATTLIST CUSTOMER
IMAGE ENTITY #IMPLIED>
]>
Sam Smith
15
August 22, 2009
Tomatoes
..
Chương 4. XML 4 - 99/
4.2.3 Thuộc tính (attribute)
- Kiểu đa thực thể (ENTITIES)
cho phép gán nhiều thực thể vào thuộc tính
Ví dụ:
4.2 Định nghĩa kiểu dữ liệu - DTD
Chương 4. XML 4 - 100/
4.2.3 Thuộc tính (attribute)
4.2 Định nghĩa kiểu dữ liệu - DTD
<!DOCTYPE DOCUMENT [
<!ATTLIST CUSTOMER
IMAGE ENTITIES #IMPLIED>
]>
Sam Smith
15
August 22, 2009
Tomatoes
Chương 4. XML 4 - 101/
4.2.3 Thuộc tính (attribute)
- Kiểu ghi nhớ (NOTATION)
dùng để xác định dạng thức của các dữ liệu phi XML
một trong những mẫu ghi nhớ thông dụng nhất đó là khai
báo kiểu MIME (Multipurpose Internet Mail Extension) dùng
cho biết thông tin về nội dung tài liệu. Ví dụ “image/gif” là file
hình ảnh, “text/html” là file HTML hoặc thuần text
Ví dụ:
4.2 Định nghĩa kiểu dữ liệu - DTD
Chương 4. XML 4 - 102/
4.2.3 Thuộc tính (attribute)
4.2 Định nghĩa kiểu dữ liệu - DTD
<!DOCTYPE DOCUMENT [
<!ATTLIST CUSTOMER
IMAGE NMTOKEN #IMPLIED
IMAGE_TYPE NOTATION (GIF | JPG) #IMPLIED>]>
Sam Smith
15
August 22, 2009
Tomatoes
..
Chương 4. XML 4 - 103/
4.3.1 CSS
- CSS chỉ qui định kiểu (màu sắc, font chữ, màu nền,) mà
không bao gồm dữ liệu văn bản của trang HTML trong đó
- HTML sẽ tham chiếu đến các định nghĩa CSS trong một file
riêng biệt và áp dụng chúng vào định nghĩa của tài liệu
Ví dụ:
4.3 Ngôn ngữ định dạng
Chương 4. XML 4 - 104/
4.3.1 CSS
định nghĩa kiểu cho các phần tử HTML trong file style.css
4.3 Ngôn ngữ định dạng
BODY {font : 30pt “Times New Roman”}
H1 {font 15pt/17pt “Times New Roman”; font-weight: bold; color: red}
H2 {font 14pt/16pt “Times New Roman”; font-weight: bold; color: blue}
P {font 10pt/12pt “Times New Roman”; color: red}
Chương 4. XML 4 - 105/
4.3.1 CSS
Trong tài liệu chính test.html
4.3 Ngôn ngữ định dạng
CSS and HTML Document
Here is body style
Heading 1 Style
Heading 2 Style
Both Heading Style
Paragrap here
Chương 4. XML 4 - 106/
4.3.1 CSS
- Định nghĩa và khai báo CSS ngoại
Dùng thẻ trong tài liệu HTML để tham chiếu đến tập tin
định kiểu CSS ngoại như sau
4.3 Ngôn ngữ định dạng
Chương 4. XML 4 - 107/
4.3.1 CSS
- Định nghĩa và sử dụng CSS nội
Các định nghĩa CSS nội thường đặt giữa thẻ ở
đầu trang tài liệu HTML
hr {color: sienna}
p {margin-left: 20px}
body {background-image: url(“images/back40.gif”)}
4.3 Ngôn ngữ định dạng
Chương 4. XML 4 - 108/
4.3.1 CSS
- Khai báo kiểu CSS trực tiếp (inline)
ta có thể chỉ định kiểu CSS ngay trong phần định dạng
ví dụ
This is paragraph
4.3 Ngôn ngữ định dạng
Chương 4. XML 4 - 109/
4.3.1 CSS
- Nhóm các định nghĩa kiểu vào một lớp
ta có thể gom các thuộc tính định kiểu lại thành nhóm gọi là lớp
(class).
Định nghĩa một lớp bắt đầu bằng dấu chấm (.), đến tên lớp
Ví dụ: RED_ITALIC dưới đây là một lớp mang kiểu thuộc tính
bao gồm chữ màu đỏ và in nghiêng
4.3 Ngôn ngữ định dạng
Chương 4. XML 4 - 110/
4.3.1 CSS
- Nhóm các định nghĩa kiểu vào một lớp
hr {color: sienna}
p {margin-left: 20px}
body {background-image: url(“images/back40.gif”)}
.RED_ITALIC {color: red; font-style=italic}
Sử dụng lớp trong phần tử định dạng bằng thuộc tính
CLASS.
Ví dụ:
This is paragraph use red_italic class.
4.3 Ngôn ngữ định dạng
Chương 4. XML 4 - 111/
4.3.1 CSS
- Khai báo kiểu CSS cho XML
Dữ liệu XML không có khả năng hiển thị,
CSS sẽ qui định màu sắc và dữ liệu cụ thể mà các phần tử XML
có thể dùng để hiển thị trong trình duyệt.
Khai báo và sử dụng CSS tương tự như trong HTML
4.3 Ngôn ngữ định dạng
Chương 4. XML 4 - 112/
4.3.1 CSS
- Khai báo kiểu CSS cho XML
Ví dụ:
4.3 Ngôn ngữ định dạng
XML Programming
By MK
Introduction
This Introduction to XML Programming.
XML is markup language for documents.
Chương 4. XML 4 - 113/
4.3.1 CSS
- Khai báo kiểu CSS cho XML
File Style.css
4.3 Ngôn ngữ định dạng
TITLE {display: block; font-size: 24pt; font-weight:bold;
text-align: center; text-decoration:underline}
AUTHOR {display: block; font-size: 18pt; font-weight:bold;
text-align: center}
SECTION {display: block; font-size: 16pt; font-weight:bold;
text-align: center; font-style=italic}
P {display: block; margin-top: 10}
.RED_ITALIC {color: red; font-style=italic}
Chương 4. XML 4 - 114/
4.3.1 CSS
- Khai báo kiểu CSS cho XML
4.3 Ngôn ngữ định dạng
Chương 4. XML 4 - 115/
4.3.2 XSL
- XSL (Extension Style Language): ngôn ngữ định kiểu mở rộng
-biến đổi dữ liệu của XML để hiển thị
+ XSL transform (XSLT): trích rút dữ liệu XML đưa vào khuôn
dạng HTML
+ XSL Format Object (XSL FO ): cung cấp các thuộc tính thiết
lập định dạng (font chữ, màu chữ, hình ảnh,)
+ XSL phải được viết theo đúng cú pháp và hợp khuôn dạng với
qui tắc XML
4.3 Ngôn ngữ định dạng
Chương 4. XML 4 - 116/
4.3.2 XSL
Ví dụ:
4.3 Ngôn ngữ định dạng
Mercury
.0553
58.65
1516
.983
43.4
Chương 4. XML 4 - 117/
Nội dung file planets.xsl
4.3 Ngôn ngữ định dạng
Chương 4. XML 4 - 118/
4.3.2 XSL
4.3 Ngôn ngữ định dạng
Chương 4. XML 4 - 119/
- Tạo tài liệu XSLT
XSLT nhận dữ liệu XML theo cấu trúc hình cây, biến đổi và định
dạng theo cấu trúc hình cây khác.
7 loại nút mà XSL có thể nhận dạng và chuyển dịch:
4.3 Ngôn ngữ định dạng
Chương 4. XML 4 - 120/
- Tạo tài liệu XSLT
4.3 Ngôn ngữ định dạng
Dữ liệu thuần văn bản nằm giữa thẻ đóng và thẻ mởVăn bản
Nắm giữ nội dung chuỗi chỉ thị xử lý đã loại bỏ ký tự định
dạng là
Chỉ thị xử lý
Nắm giữ chuỗi định danh URI của không gian tênKhông gian tê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:
bai_giang_co_so_du_lieu_web_va_xml_chuong_4_xml_ho_van_phi.pdf



