Fonction generate-id
Retourne une chaîne qui identifie de manière unique le nœud dans l'argument node-set qui apparaît en premier dans l'ordre du document.
string generate-id(node-set?)
Notes
L'identificateur unique doit contenir des caractères alphanumériques ASCII et commencer par un caractère alphabétique. Par conséquent, la chaîne est un nom XML du point de vue de la syntaxe. Rien ne garantit qu'un identificateur unique généré sera différent des identificateurs uniques spécifiés dans le document source. Si l'argument node-set est vide, la chaîne vide est retournée. Si l'argument est omis, il s'affiche par défaut dans le nœud du contexte.
Exemple
Fichier XML (data.xml)
<?xml-stylesheet type="text/xsl" href="sample.xsl"?>
<catalog>
<book id="bk101">
<author>Gambardella, Matthew</author>
<title>XML Developer's Guide</title>
<genre>Computer</genre>
<price>44.95</price>
<publish_date>2000-10-01</publish_date>
<description>An in-depth look at creating applications with XML.</description>
</book>
<book id="bk102">
<author>Ralls, Kim</author>
<title>Midnight Rain</title>
<genre>Fantasy</genre>
<price>5.95</price>
<publish_date>2000-12-16</publish_date>
<description>A former architect battles corporate zombies.</description>
</book>
</catalog>
Fichier XSLT (sample.xsl)
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html"/>
<xsl:template match="/">
<html>
<body>
<xsl:for-each select="//book">
<button id="{generate-id(author)}" onclick="alert(this.id)">
<xsl:value-of select="author"/>
</button>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Voici les données en sortie formatées :
Si vous cliquez dans Internet Explorer, une boîte de dialogue d'avertissement affiche « IDAHAGJD ».
Si vous cliquez avec le bouton droit dans Internet Explorer, une boîte de dialogue d'avertissement affiche « IDAPAGJD ».
Notez que la valeur ID est générée lors de l'exécution. Par conséquent, les valeurs spécifiques peuvent varier lors des différentes invocations de la transformation.
Voici les données en sortie du processeur :
<html>
<body><button id="IDAHAGJD" onclick="alert(this.id)">Gambardella, Matthew</button>
<button id="IDAPAGJD" onclick="alert(this.id)">Ralls, Kim</button></body>
</html>