3 Một số phần tử(element) thường dùng của XSL
3.10 Phần tử variable
Phần tử này dùng để khai báo một biến. Để khai báo một biến chúng ta viết theo một trong hai cách sau:
• <xsl:variable name=”tên biến” select=”giá trị gán cho biến” />
• <xsl:variable name=”tên biến” >Giá trị gián cho biến</xsl:variable>
Một biến có thể được khai báo mà không có giá trị khởi tạo
3.11 Phần tử param
Phần tử này cũng tương tự như phần tử variable là để khai báo một biến nhưng hai phần tử này có một số điểm khác nhau. Phần tử param khi chúng ta khai báo giá trị khởi gán cho nó chỉ là một giá trị default, giá trị của biến có thể được thay đổi bởi phần tử with-param (phần tử with-param dùng để gán giá trị cho biến được khai báo bởi phần tử param).
Ví dụ:
Tài liệu XSL lưu với tên test.xsl XML
1 <xsl:stylesheet xmlns:xsl =
"http://www.w3.org/1999/XSL/Transform" version = "1.0" >
<xsl:output method = "text" />
<?xml version=”1.0” ?> <?xml-stylesheet type="text/xsl" href="test.xsl" ?> <AAA > <BBB>bbb </BBB> <CCC>ccc </CCC> </AAA>
2 <xsl:template match = "/" > Kết quả hiển thị trên trình duyệt 3 <xsl:call-template name = "print" >
4 <xsl:with-param name = "A" >11 </xsl:with-param>
<xsl:with-param name = "B" >33 </xsl:with-param>
5 </xsl:call-template>
6 <xsl:call-template name = "print" > 7 <xsl:with-param name = "A" >55
</xsl:with-param> 8 </xsl:call-template> 9 </xsl:template>
11 + 33 = 44 55 + 111 = 166
10 <xsl:template name = "print" > <xsl:param name = "A" />
<xsl:param name = "B" >111</xsl:param> <xsl:text ></xsl:text>
<xsl:value-of select = "$A" /> <xsl:text > + </xsl:text> <xsl:value-of select = "$B" /> <xsl:text > = </xsl:text>
<xsl:value-of select = "$A+$B" /> </xsl:template>
11 </xsl:stylesheet> Giải thích ví dụ:
Dòng 2: Tạo phần tử xsl:template, phần tử này có hai phần tử con là xsl:call- template
Dòng 3: Tạo phần tử xsl:call-template để triệu gọi phần tử template có tên là print, phần tử call-template có hai phần tử con xsl:param
Dòng 4: Gán giá trị cho biến A =11 và biến B=33
Dòng 7: Tương tự như dòng 3, phần tử này có một phần tử con xsl:param dùng để gán giá trị cho biến A=55
Dòng 10: Tạo phần tử xsl:template có tên là print. Phần tử này có các phần tử con thực hiện các chức năng sau:
o Khai báo biến A (không có giá trị khởi tạo)
o Khai báo biến B (với giá trị khởi tạo là 111)
o Cho ra giá trị của biến A
o Cho ra dấu ‘+’
o Cho ra giá trị của biến B
o Cho ra dấu ‘=’
o Cho ra tổng của 2 biến A và B Các buớc thược hiện:
o Gọi đến phần tử template có tên là print, gán giá trị cho biến A=11, B=33 và thực hiện cộng hai biến A và B
o Gọi đến phần tử template có tên là print, gán giá trị cho biến A=55 thực hiện cộng hai biến A và B
3.12 Phần tử include
Phần tử này làm việc giống như câu lệnh include trong một số ngôn ngữ lập trình (C, PHP...), tức là phần tử này có chức năng chèn đoạn của file xsl được chỉ ra trong thuộc tình href của phần tử include vào ngay phần tử include, có nghĩa là nó thực hiện phép thế.
Phần tử này làm việc cũng giống như phần tử include, nhưng chúng ta cần lưu ý là phần tử import phải là phần tử con đầu tiên của phần tử stylesheet Ví dụ:
Tài liệu XSL lưu với tên test.xsl xslt33.xslt <xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" version = "1.0" > <xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" version = "1.0" >
<xsl:import href = "xslt33.xslt" /> <xsl:output method = "text" /> <xsl:output method = "text" /> <xsl:template match = "BBB" > <xsl:template match = "/" >
<xsl:apply-templates select = "//BBB" /> <xsl:text > BBB[</xsl:text>
<xsl:value-of select = "position()" /> <xsl:text >]: </xsl:text> <xsl:value-of select = "." /> </xsl:template> </xsl:template> </xsl:stylesheet> </xsl:stylesheet> XML Kết quả hiển thị trên trình duyệt <?xml version=”1.0”?> <?xml-stylesheet type="text/xsl" href="test.xsl" ?> <AAA > <BBB>cc </BBB> <BBB>ff </BBB> <BBB>aa </BBB> <BBB>fff </BBB> <BBB>FFF </BBB> <BBB>Aa </BBB> <BBB>ccCCC </BBB> </AAA> BBB[1]: cc BBB[2]: ff BBB[3]: aa BBB[4]: fff BBB[5]: FFF BBB[6]: Aa BBB[7]: ccCCC
Chương 5 XLink và XPointer
1 XLink
1.1 XLink là gì?
Xlink (XML Linking Language) là một ngôn ngữ hỗ trợ cho liên kết tài liệu XML một cách rất tổng quát.
Siêu liên kết HTML cung cấp một số thẻ như <A>, <IMG> mới có khả năng tạo liên kết. Những liên kết này chỉ là liên kết một chiều, HTML cho phép tiến chứ không cho quay lui, tức là khi chúng ta link đến một trang nào đó thì chúng ta không thể nào đi ngược lại trang trước đó (nếu không sử dụng History của trình duyệt hay một số ngôn ngữ khác). XLink cho phép tạo liên kết đến một phần (giống như boockmark của HTML) hoặc toàn bộ tài liệu theo nhiều hình thức khác nhau. XLink cho phép liên kết một chiều hoặc nhiều chiều.
XLink cần có sự hỗ trợ của XPointer và XPath để có thể trỏ đến một cách chính xác từng vùng dữ liệu do XPointer và XPath định vị.