Các hàm trong Xpath

Một phần của tài liệu TIỂU LUẬN MÔN CƠ SƠ DỮ LIỆU NÂNG CAO XML database Xpath & XSLT (Trang 30)

3.2.1 Xpaht Node

Node trong tài liệu XSL được xây dựng dựa trên thẻ XML và các chỉ thị dạng tempalte. Tài liệu này có cấu trúc được mô tả dạng dữ liệu tree. Mỗ node là một tài liệu. Khi được triệu gọi cùng với file XML thì các phầm mềm có hỗ trợ XML bà Xpaht thực thiện kết hợp giữa file XSL và file XML tại thành dữ liệu được xử lý và đưa kết quả theo đầu ra Cấu trúc của xsl theo Xpath

Hình 3.1 Cấu trúc tài liệu XSL dựa trên Xpath

Bảng sau đây mô tả các loại node được sử dụng và hỗ trợ trong xsl

Bảng: các loại node trong Xpath

Node type Giá trị Tên mở rộng Mô tả

Root Chứa mọi node Không có

Lưu trữ toàn bộ các node có trong tài liệu XML. Tồn tại đầu tiên và bao các thẻ

element

Diễn tả một thực thể, một thuộc tính. Lưu trữ giá trị hoặc chuỗi giá trị

Tên của thực thể, thuộc tính,

namespace

Diễn tả thẻ của tài liệu XML

attribute Giá trị của một thuộc tính thuộc một thực thẻ Tên của một thuộc tính trong Diễn tả thuộc tính của một thực thể Root Node Processing Instruction Comments Document Elements

Element Comment Processing

Instruction

một thực thể

Text Giá trị của thuộc tính Không có tên Tập ký tự dữ liệu trong node text

Comment <!- Cấu trúc chú thích

--> Kkông có tên

Processing - intruction

Báo cho trình phân tích

thao tác tài liệu XML Loại chỉ dẫn

Lựa chọn bộ xử lý tài liệu XML phù hợp

namespace Chỉ ra URI Prefix của

namespace Chỉ ra không gian tên Khi xây dựng tài liệu XSL có sử dụng Xpaht chúng ta sử dụng các node có trong bảng trên và kết hợp chúng với các toán tử và hàm được hỗ trợ.

3.2.2 Xpaht Operator

Xpaht hỗ trợ các toán tử để thao tác với tài liệu XML. Sau đây là danh dách các toán tử thao tác. Toán tử này cho phép thao tác trên các loại dữ liệu dạng số và dạng ký tự.

Bảng: toán tử thao tác với kiểu dữ liệu

Toán tử Mô tả Ví dụ Giá trị trả lại

| Hợp của hai giá trị //Book |//cd Mọi giá trị có chứa book và cd

+ Cộng 23+ 12 35

- Trừ 12-10 2

* Nhân 3*3 6

div Chia 5 div 3 1

= Bằng 5=5 True/false dựa trên biểu thức

logic/ true

!= Không bằng 5=6 False

< Nhỏ hơn 7<8 True

<= Nhỏ hơn hoặc bằng 7<=8 True

> Lớn hơn 7>8 False

>= Lớn hơn hoặc bằng 7>=8 False

or Hoặc 7 or 8 True khi một trong 2 true

and Và 7and8 = true khi cả hai true ngược lại

false

mod Chia lấy dư 12/10 2

3.2.3 Xpath Funtion

Xpath đưa ra một tập các hàm thao tác với nhiều dữ liệu khác nhau. Trong đó có thể phân chia theo kiểu hàm logic, hàm thao tác với dữ liệu dạng text và dữ liệu dạng số

- Các hàm thao tác với các node: Cho phép thao tác tới các node tong tài liệu XML hiện tại

Bảng: Hàm thao tác node

Hàm Trả về

Count(Node-set) Số node trong tập các node Generate-id(Node-set) ID của các node

Last() Phần tử cuối cùng

Local-name(Node-set) Tên của node đầu tiên Name(Node-set) Tên của node đầu tiên Namespace-uri(Node-set) URI

Position() Vị trí của node

Các hàm thao tác dữ liệu dạng logic: tính toán và đưa ra kết quả logic

Bảng: Hàm thao tác kết quả là kiểu logic

Hàm Giá trị trả về

Expr and expr True khi cả hai là true

Expr or expr True khi một trong 2 là true

True() True

False() False

- Hàm thao tác dạng số: tính toán trên các con số

Bảng: Hàm thao tác với dữ liệu số

Toán tử Kiểu trả về

div Chia lấy nguyên hai giá trị số Mod Chia lấy dư hai giá trị số round Làm tròn hai giá trị số Sum() Tổng giá trị của các node

- Hàm thao tác dạng chỗi (text): Thao tác với chỗi dữ liệu

Bảng: Hàm thao tác với dữ liệu text

Hàm Giá trị trả về

Concat(string, string, ….) Nối các string lại với nhau thành một chuỗi Format-number(number, patten,

decimal format) Định dạng số theo mẫu và phần thập phân Normailze-space(string) Chuẩn hóa xâu. Thay thế các space gần liền

nhau về môt space Substring(string, offset,range) Lấy ra xâu con Substring-after(string, to-match) xâu con sau Substring-befor(string, to-match) xâu con trước Translate(string, charater to-match

characters-replate-with) Thay thế các xâu theo mẫu

Contain(string, sub) Kiểm tra tồn tại trong string hay không. True có tồn tại, ngược lại bằng false

Starts-with(string, sub) True nếu bắt đầu chuỗi sub String-length(string) Độ dài chuỗi

Ví dụ sau đây mô tả cách sử dụng hàm trong XSL sử dụng Xpath File data.Xml <?xml version="1.0" encoding="utf-8"?> <data> <number>1</number> <number>3</number> <number>4</number> <number>17</number> <number>8</number> <number>11</number> </data>

File: Transform.xslt <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <xsl:for-each select="//number"> <xsl:value-of select="."/> <xsl:choose>

<xsl:when test="position()=last()"> <xsl:text> = </xsl:text> </xsl:when>

<xsl:otherwise> <xsl:text> + </xsl:text> </xsl:otherwise> </xsl:choose>

</xsl:for-each>

<xsl:value-of select="sum(//number)"/> </xsl:template>

Một phần của tài liệu TIỂU LUẬN MÔN CƠ SƠ DỮ LIỆU NÂNG CAO XML database Xpath & XSLT (Trang 30)

Tải bản đầy đủ (DOC)

(34 trang)
w