Thẻ <xsl:apply-templates> của XSLT
Định nghĩa và cách sử dụng
Phần tử <xsl:apply-templates> có thể áp dụng mẫu cho phần tử hiện tại hoặc các phần tử con của phần tử hiện tại.
Nếu chúng ta thêm thuộc tính select vào phần tử <xsl:apply-templates>, thì nó chỉ xử lý các phần tử con khớp với giá trị của thuộc tính đó. Chúng ta có thể sử dụng thuộc tính select để quy định thứ tự xử lý các phần tử con.
Cú pháp
<xsl:apply-templates select="expression" mode="name"> <!-- Nội dung: (xsl:sort|xsl:with-param)* --> </xsl:apply-templates>
Thuộc tính
Thuộc tính | Giá trị | Mô tả |
---|---|---|
select | Biểu thức | Tùy chọn. Quy định phần tử cần xử lý. Tùy chọn * chọn toàn bộ tập hợp phần tử. Nếu bỏ qua thuộc tính này, sẽ chọn tất cả các phần tử con của phần tử hiện tại. |
mode | Tên | Tùy chọn. Nếu có nhiều phương pháp xử lý cho cùng một phần tử, thì có thể sử dụng mode để phân biệt chúng. |
Mô tả
Ví dụ 1
Dùng thẻ h1 bao quanh mỗi thẻ title trong tài liệu:
<?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="title"> <h1><xsl:apply-templates/></h1> </xsl:template> </xsl:stylesheet>
Ví dụ 2
Bao quanh tất cả các thẻ title của các con node thuộc message bằng thẻ h1 trong tài liệu:
<?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="message"> <h1><xsl:apply-templates select="title"/></h1> </xsl:template> </xsl:stylesheet>
Ví dụ 3
Bao quanh tất cả các con node của message có thuộc tính mode được thiết lập thành "big" bằng thẻ h1:
<?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="message"> <h1><xsl:apply-templates select="*" mode="big"/></h1> </xsl:template> </xsl:stylesheet>