XSLT <khóa>
Phần tử thẻ <xsl: key> chỉ định một cặp tên-giá trị đã đặt tên được gán cho một phần tử cụ thể trong tài liệu XML. Khóa này được sử dụng với hàm key () trong biểu thức XPath để truy cập các phần tử được gán trong tài liệu XML.
Tờ khai
Sau đây là khai báo cú pháp của <xsl:key> thành phần.
<xsl:key
name = QName
match = Pattern
use = Expression >
</xsl:key>
Thuộc tính
S. không | Tên & Mô tả |
---|---|
1 | Name Tên của khóa sẽ được sử dụng. |
2 | Match Các mẫu được sử dụng để xác định một nút giữ khóa này. |
3 | Use Biểu thức XPath để xác định giá trị của các nút của tài liệu xml. |
Thành phần
Number of Occurrences | Vô hạn |
Parent elements | xsl: bảng định kiểu |
Child elements | không ai |
Ví dụ demo
Ví dụ này tạo một bảng gồm phần tử <student> với thuộc tính của nó rollnovà con của nó <firstname>, <lastname>, <nickname> và <marks> bằng cách lặp qua từng học sinh. Nó kiểm tra key as firstname để là một trong các tên của học sinh và sau đó in ra thông tin chi tiết của học sinh.
students.xml
<?xml version = "1.0"?>
<?xml-stylesheet type = "text/xsl" href = "students.xsl"?>
<class>
<student rollno = "393">
<firstname>Dinkar</firstname>
<lastname>Kad</lastname>
<nickname>Dinkar</nickname>
<marks>85</marks>
</student>
<student rollno = "493">
<firstname>Vaneet</firstname>
<lastname>Gupta</lastname>
<nickname>Vinni</nickname>
<marks>95</marks>
</student>
<student rollno = "593">
<firstname>Jasvir</firstname>
<lastname>Singh</lastname>
<nickname>Jazz</nickname>
<marks>90</marks>
</student>
</class>
students.xsl
<xsl:stylesheet version = "1.0"
xmlns:xsl = "http://www.w3.org/1999/XSL/Transform">
<xsl:key name = "firstname-search" match = "student" use = "firstname"/>
<xsl:template match = "/">
<html>
<body>
<h2>Students</h2>
<table border = "1">
<tr bgcolor = "#9acd32">
<th>Roll No</th>
<th>First Name</th>
<th>Last Name</th>
<th>Nick Name</th>
<th>Marks</th>
</tr>
<xsl:for-each select = "key('firstname-search', 'Dinkar')">
<tr>
<td><xsl:value-of select = "@rollno"/></td>
<td><xsl:value-of select = "firstname"/></td>
<td><xsl:value-of select = "lastname"/></td>
<td><xsl:value-of select = "nickname"/></td>
<td><xsl:value-of select = "marks"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>