Fonction generate-id() | |
Génère un ID unique (un nom XML) pour un nœud donné. Si aucun ensemble de nœuds n'est indiqué, la fonction generate-id() génère un ID pour le nœud de contexte. | |
Entrées | |
Un ensemble de nœuds facultatif. Si aucun ensemble de nœuds n'est indiqué, cette fonction génère un ID pour le nœud de contexte. Si l'ensemble de nœuds est vide, la fonction generate-id() renvoie une chaîne vide. |
|
Sortie | |
Un ID unique ou une chaîne vide si l'ensemble de nœuds indiqué est vide. Il est important de connaître certaines informations concernant la fonction generate-id() :
|
|
Définie dans | |
XSLT section 12.4, Fonctions supplémentaires Divers. |
|
Exemple | |
La feuille de style suivante utilise la fonction document('') pour accéder à l'ensemble de ses nœuds <xsl:text>. Elle utilise ensuite la fonction generate-id() pour générer un ID unique pour chacun de ces nœuds, puis rappelle la fonction generate-id() pour montrer que la fonction génère le même ID pour un nœud donné. La feuille de style est la suivante : <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="text"/> <xsl:variable name="newline"> <xsl:text> </xsl:text> </xsl:variable> <xsl:template match="/"> <xsl:value-of select="$newline"/> <xsl:text>A test of the generate-id() function:</xsl:text> <xsl:value-of select="$newline"/> <xsl:value-of select="$newline"/> <xsl:for-each select="document('')//xsl:text"> <xsl:text>Node name: </xsl:text> <xsl:value-of select="name()"/> <xsl:text> - generated id: </xsl:text> <xsl:value-of select="generate-id()"/> <xsl:value-of select="$newline"/> </xsl:for-each> <xsl:value-of select="$newline"/> <xsl:value-of select="$newline"/> <xsl:text>Now we'll try it again...</xsl:text> <xsl:value-of select="$newline"/> <xsl:value-of select="$newline"/> <xsl:for-each select="document('')//xsl:text"> <xsl:text>Node name: </xsl:text> <xsl:value-of select="name()"/> <xsl:text> - generated id: </xsl:text> <xsl:value-of select="generate-id()"/> <xsl:value-of select="$newline"/> </xsl:for-each> </xsl:template> </xsl:stylesheet> Les résultats suivants ont été générés par la feuille de style : A test of the generate-id() function: Node name: xsl:text - generated id: NC Node name: xsl:text - generated id: N16 Node name: xsl:text - generated id: N22 Node name: xsl:text - generated id: N28 Node name: xsl:text - generated id: N38 Node name: xsl:text - generated id: N44 Node name: xsl:text - generated id: N4A Now we'll try it again... Node name: xsl:text - generated id: NC Node name: xsl:text - generated id: N16 Node name: xsl:text - generated id: N22 Node name: xsl:text - generated id: N28 Node name: xsl:text - generated id: N38 Node name: xsl:text - generated id: N44 Node name: xsl:text - generated id: N4A Les ID générés sont chaque fois les mêmes. |