Xslt trong xml (Bài 6)

Xslt trong xml (Bài 6)

xslt-trong-xml-1
XML và JSON

Xslt trong xml (Bài 6)

Xslt trong xml được dùng để phân tích và trích xuất thông tin của tập tin XML. XSL viết tắt EXtensible Stylesheet Language. 

XSLT viết tắt XSL Transformations. Bên dưới là một ví dụ về kết quả phân tích và trích xuất thông tin từ tập tin XML và hiển thị sang HTML.

xslt trong xml 1

Xslt trong xml – Các bước thực hiện

Dựa vào cấu trúc tài liệu XML để tạo tài liệu XSLT và thực hiện các xử lý sau

  • Duyệt tài liệu XML, tìm và so khớp các phần tử
  • Trích xuất thông tin của thuộc tính, của các thẻ
  • Hiển thị thông tin dưới dạng HTML

Ví dụ cdcatalog.xsl

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
 <html>
   <body>
    <table>
      <xsl:for-each select="catalog/cd">
        <tr><td><xsl:value-of select="title"/></td></tr>
      </xsl:for-each>
    </table>
   </body>
 </html>
 </xsl:template>
</xsl:stylesheet>

Xslt trong xml – Thành phần <xsl:template>

Dùng để so khớp với các phần tử XML

Cú pháp – Tìm và so khớp với phần tử gốc (root)

<xsl:template match="/">

Cú pháp – Tìm và so khớp với các phần tử con

<xsl:template match="Tên phần tử">

Ví dụ – Tìm và so khớp phần tử Customer

<xsl:template match="Customer">

Xslt trong xml – Thành phần <xsl:value-of>

Dùng để trích xuất thông tin của một phần tử XML

Cú pháp:

<xsl:value-of select="Tên phần tử"/>

Ví dụ:

xslt trong xml 2

Ví dụ mẫu:

Tập tin XML

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="cdcatalog.xsl"?>
<catalog>
 <cd cd_id="01">
   <title>Empire Burlesque</title>
 </cd>
 <cd cd_id="02">
   <title>Hide your heart</title>
 </cd>
</catalog>

Tập tin 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="/">
 <html>
  <body>
    <xsl:value-of select="catalog/cd/title"/>
  </body>
 </html>
</xsl:template>
</xsl:stylesheet>

Xslt trong xml – Thành phần <xsl:for-each>

Vòng lặp

Cú pháp:

<xsl:for-each select="Tên phần tử">

Ví dụ:

xslt trong xml 3

Xslt trong xml – Thành phần <xsl:sort>

Sắp xếp theo phần tử được chỉ định

Cú pháp:

<xsl:sort select="Tên phần tử" order="ascending | descending"/>

Ví dụ:

<xsl:for-each select="catalog/cd">
  <xsl:sort select="title"/>
  <xsl:value-of select="title"/>
</xsl:for-each>

Xslt trong xml – Thành phần <xsl:if>

Kiểm tra dữ liệu thỏa mãn điều kiện nào đó.

Cú pháp:

<xsl:if test="expression">…</xsl:if>

Với các toán tử so sanh

=  (equal)
!= (not equal)
&lt; less than (>)
&gt; greater than (<)

Ví dụ: Lập điều kiện với price > 10

<xsl:for-each select="catalog/cd">
  <xsl:if test="price &gt; 10">
        
  </xsl:if>
</xsl:for-each>

Xslt trong xml – Thành phần <xsl:choose>

Lọc dữ liệu với nhiều trường hợp

Cú pháp:

<xsl:choose>
   <xsl:when test="expression">
     ... some output ...
   </xsl:when>
   <xsl:otherwise>
     ... some output ....
   </xsl:otherwise>
</xsl:choose>

Ví dụ:

<xsl:choose>       
  <xsl:when test="price &gt; 10">       
  
  </xsl:when>       
  <xsl:otherwise>         
       
 </xsl:otherwise>
</xsl:choose>

Xslt trong xml – Thuộc tính Select

In vị trí xuất hiện của một phần tử trong tài liệu.

Ví dụ:

<xsl:value-of select="position()"/>
xslt trong xml 4

XSLT trong XML – Bài tập thực hành

Bài thực hành số 1: Tạo tập tin LopHoc.xml. Truy vấn và hiển thị thông tin các lớp học

MaLopTenLop
CNTT14Công nghệ thông tin 2014
TCKT14Tài chính kế toán 2014
TKDH14Thiết kế đồ họa

Bài thực hành số 2: 

Tạo tập tin SinhVien.xml có định nghĩa kiểu dữ liệu sử dụng XML Schema.

  • Giới tính chỉ nhập Nam hoặc Nữ
  • Mã lớp nhập theo qui ước: 4 ký tự đầu là chữ cái, 2 ký tự kế tiếp là số

Truy vấn và hiển thị thông tin sinh viên tăng dần theo tên

STTMaSvTenSvGioiTinhNgaySinhMaLop
1sv01Phan Tuấn CườngNam03/03/1993CNTT14
2sv02Huỳnh Chí TâmNam08/03/1993CNTT14
3sv03Vương Chí DũngNam14/04/1991CNTT14
4sv04Phạm Đức NguyênNam27/07/1993TCKT14
5sv05Trương Mỹ Yến NhiNữ03/10/1993TCKT14
6sv06Hồ Võ Thanh TùngNam06/09/1990TCKT14

Bài thực hành số 3:

Tạo tập tin MonHoc.xml có định nghĩa kiểu dữ liệu sử dụng XMLSchema với yêu cầu: Số giờ tối thiểu là 4, tối đa là 48.

Truy vấn và hiển thị các môn học có số giờ từ 40 trở lên

MaMhTenMhSoGio
CSDLCơ sở dữ liệu30
MCBMạng căn bản30
THDCTin học đại cương45
THVPTin học văn phòng45
XLAXử lý ảnh45

Bài thực hành số 4:

Tạo tập tin KetQua.xml có định nghĩa kiểu dữ liệu sử dụng XMLSchema với Điểm thi >=0 và điểm thi <=10

Truy vấn và hiển thị điểm thi của những sinh viên học môn THVP và có điểm thi >= 5. Hiển thị giảm dần theo điểm thi.

MaSvMaMhDiemThi
sv01THDC8
sv01THVP9.5
sv02THDC5.5
sv02THVP10
sv03THDC9
sv03THVP4.5
Alert: You are not allowed to copy content or view source !!