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