Xsl là gì Update 07/2021

Thông qua các trình duyệt web: IE, Firefox, …, chúng ta có thể xem được nội dung tập tin XML. Để tiện cho việc hiển thị nội dung của tập tin XML, trong bài XML với Style Sheet, chúng ta có thể phối hợp giữa CSS với các thẻ của tập tin XML hổ trợ cho việc hiển thị trên các trình duyệt. Bài này sẽ mô tả kỹ thuật chuyển đổi XML sang một file XML khác, chuyển đổi sang HTML hay một dạng văn bản dạng text khác. Đồng thời bài viết này cũng hướng dẫn các bạn cách tạo 1 file XSLT thông qua các thành phần của XSLT 

I. Giới thiệu về Extensible Stylesheet Language (XSL):

XSL là một dạng ngôn ngữ dựa trên nền tảng XML để tạo ra stylesheet nhằm mục đích định dạng nội dung XML cho nhiều mục đích hiển thị khác nhau, đồng thời XSL còn có khả năng chuyển đổi XML thành dạng định dạng khác. XSL bao gồm 3 phần:

*

– XSL Transformation (XSLT): là một ngôn ngữ dạng XML dùng để chuyển đổi XML thành định dạng khác như HTML

– XML Path Language (X-Path): là một ngôn ngữ dùng để truy xuất các thành phần trong XML

XSL Formatting Object (XSL-FO): là ngôn ngữ dùng để định dạng XML

II. Quá trình chuyển đổi XML bằng XSLT

*

XML và XSLT là đầu vào cho công cụ chuyển đổi (hay còn gọi là XSLT Processor). Kết quả của quá trình chuyển đổi này là một cấu trúc dạng cây với các nút là các element của XML đã được chuyển đổi thành các dạng text và thuộc tính do XSLT qui định.

Bạn đang xem: Xsl là gì

– Quá trình chuyển đổi gồm 2 bước chính:

+ Bước 1: XSLT Processor chuyển đổi văn bản XML thành cấu trúc dạng cây

+ Bước 2: XSLT Processor bắt đầu áp dụng các khuôn mẫu (template) được khai báo trong XSLT cho cấu trúc cây trên. Quá trình này bắt đầu từ thẻ root và đến các thẻ con, khi tìm thấy thẻ có khai báo template trong XSLT, XSLT Processor sẽ áp dụng template này cho thẻ đó và kết quả thu được cũng là một cấu trúc cây nhưng dữ liệu đã được chuyển đổi

 

*

III. Cú pháp của XSLT:

– Cấu trúc XSLT giống như cấu trúc XML. File XSLT là file có phần mở rộng là .xsl. Khi muốn khai báo XSLT trong XML chúng ta dùng cú pháp sau:

– Cú pháp thẻ root của 1 file XSLT:

……..

– Trong đó thẻ là thẻ root cho tất cả các file XSLT

IV. Top Level XSLT Element:

Top Level XSLT Element là các thẻ con của thẻ bao gồm các thẻ sau:

xsl:attribute-set: dùng để thêm các thuộc tính định dạng

xsl:import: dùng để import nội dung của một XSLT khác vào XSLT hiện hành

xsl:namespace-alias: khai báo namespace thay thế namespace của XML

xsl:output: khai báo định dạng của output, element này có nhiều thuộc tính, quan trọng nhất là thuộc tính method là định dạng XML, HTML hay text

xsl:template: khai báo template cho các element trong XML

xsl:variable: khai báo hoặc gán giá trị cho biến dùng trong XSLT

V. Làm việc với XSLT:

1. : là thành phần chính của XSLT, dùng để khai báo các luật dùng để chuyển đổi các element tương ứng với thuộc tính “match” của thẻ này.

Cú pháp khai báo

xsl:template match=”pattern” mode=”mode” name=”name” priority=”number”>

Trong đó:

match: khai báo element nào sẽ áp dụng template này nếu không có thuộc tính này bắt buộc phải có thuộc tính name dùng để khai báo tên của template

mode: cho phép các các nút giống nhau sẽ được áp dụng nhiều hơn 1 lần

name: dùng để khai báo tên của template, nếu không có thuộc tính này thì phải có thuộc tính match

priority: là một số nguyên dùng để khai báo cấp độ của 1 template trong trường hợp có nhiều template cho 1 element, template cấp độ cao hơn sẽ được áp dụng

2. : dùng để áp dụng một template cho element hiện hành hay áp dụng cho các element con của element hiện hành.

Cú pháp:

.

Xem thêm: Tra Từ ‘ Water Feature Là Gì, Nghĩa Của Từ Water Feature, Water Feature

Trong đó thuộc tính select dùng để khai báo tên element áp dụng template. Nếu thuộc tính này không được khai báo thì mặc định sẽ chọn tất cả các thẻ con của thẻ hiện hành

3. : dùng để lấy nội dung của thẻ hiện hành và xuất giá trị này ra output.

Cú pháp:

xsl:value-of select=”expression” disable-output-escaping=”yes|no”/>.

Trong đó:

select: dùng để khai báo tên của Element cần lấy giá trị

disable-output-escaping: giá trị hoặc yes hoặc no, dùng để khai báo các ký tự đặc biệt sẽ được hiển thị như thế nào, nếu giá trị là “yes” các ký tự đặc biệt sẽ được xuất ra output đúng như định dạng ban đầu, nếu là “no” các ký tự này sẽ được thay thế (ví dụ như

4. dùng để khai báo vòng lặp cho tập hợp các element giống nhau.

Cú pháp:

5. : dùng để thêm 1 chuỗi ký tự vào output.

Cú pháp:

text

Chúng ta làm ví dụ cho các thành phần XSLT bên trên. Trong ví dụ này chúng ta tạo 1 file XML dùng để lưu trữ thông tin các quyển sách bao gồm: thuộc tính id (mã), title (tiêu đề), price (giá).

*

Tập tin Book.xslt

*

Kết quả:

*

6. Thêm số thứ tự: thẻ

– Ví dụ:

Trong đó:

value=”position()”: lấy vị trí của thẻ hiện hành trong list

format=”1”: xuất ra output vị trí này bắt đầu từ 1

7. Kiểm tra dữ liệu thỏa mãn điều kiện nào đó hay không:

Hoặc dùng:

….

Xem thêm: Tầng Lửng Là Gì – Giải Đáp Thắc Mắc:

….

– Ví dụ: chúng ta sẽ thêm vào bảng trên cột Kết quả nếu điểm thi >= 40: Đậu,

Rẻ

= 10″>Đắt

8. Chúng ta có thể sắp xếp lại thông tin thông qua thẻ .

Cú pháp:

xsl:sort case-order=”upper-first | lower-first” data-type=”number | qname | text” order=”ascending | descending” select=”expression”/>

– Ví dụ chúng ta sắp xếp danh sách book theo title tăng dần. Chúng ta thêm dòng sau sau dòng :

Chuyên mục: Định Nghĩa