| 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. |
|