XSLT xsl:key元素

本文概述

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>

输出

XSLT Xsl key元素1
微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?