本文概述
XSLT元素用于指定分配给XML文档中特定元素的命名名称/值对。该密钥与XPath表达式中的key()函数一起使用, 以访问XML文档中分配的元素。
<xsl:key
name = QName
match = Pattern
use = Expression>
</xsl:key>
参数说明
Index | Name | Description |
---|---|---|
1) | Name | 它指定要使用的密钥的名称。 |
2) | Match | 它指定模式必须与拥有此键的节点匹配。 |
3) | Use | 它指定XPath表达式来标识xml文档节点的值。 |
XSLT <xsl:key>元素示例
让我们以一个示例为例, 通过遍历每个员工来创建一个具有其属性” id”及其子元素” <firstname>”, ” <lastname>”, ” <nickname>”和” <salary>”的<employee>元素表。本示例将姓名作为员工的姓名作为密钥之一, 然后打印该员工的详细信息。
employee.xml
<?xml version = "1.0"?>
<?xml-stylesheet type = "text/xsl" href = "employee.xsl"?>
<class>
<employee id = "001">
<firstname>Aryan</firstname>
<lastname>Gupta</lastname>
<nickname>Raju</nickname>
<salary>60000</salary>
</employee>
<employee id = "024">
<firstname>Sonam</firstname>
<lastname>Gupta</lastname>
<nickname>Vinni</nickname>
<salary>45000</salary>
</employee>
<employee id = "056">
<firstname>Peter</firstname>
<lastname>Symon</lastname>
<nickname>John</nickname>
<salary>20000</salary>
</employee>
</class>
员工.xsl
<xsl:stylesheet version = "1.0"
xmlns:xsl = "http://www.w3.org/1999/XSL/Transform">
<xsl:key name = "firstname-search" match = "employee" use = "firstname"/>
<xsl:template match = "/">
<html>
<body>>
<h2> Employee</h2>
<table border = "1">
<tr bgcolor = "pink">
<th> ID</th>
<th>> First Name</th>
<th> Last Name</th>
<th> Nick Name</th>
<th> Salary</th>
</tr>>
<xsl:for-each select = "key('firstname-search', 'Sonam')">
<tr>
<td> <xsl:value-of select = "@id"/> </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 = "salary"/> </td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
输出