XSLT <clé>

L'élément de balise <xsl: key> spécifie une paire nom-valeur nommée affectée à un élément spécifique dans un document XML. Cette clé est utilisée avec la fonction key () dans les expressions XPath pour accéder aux éléments affectés dans un document XML.

Déclaration

Voici la déclaration de syntaxe de <xsl:key> élément.

<xsl:key 
   name = QName 
   match = Pattern 
   use = Expression > 
</xsl:key>

Les attributs

S. Non Nom et description
1

Name

Nom de la clé à utiliser.

2

Match

Modèles utilisés pour identifier un nœud contenant cette clé.

3

Use

Expression XPath pour identifier la valeur des nœuds du document xml.

Éléments

Number of Occurrences Illimité
Parent elements xsl: feuille de style
Child elements Aucun

Exemple de démonstration

Cet exemple crée une table d'élément <student> avec son attribut rollnoet son enfant <firstname>, <lastname>, <nickname> et <marks> en itérant sur chaque élève. Il vérifie que la clé comme prénom est l'un des noms de l'élève, puis imprime les détails de l'élève.

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>

Production