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>