Funzione generate-id
Restituisce una stringa che identifica in modo univoco il nodo nell'argomento set di nodi che compare per primo in base all'ordine con cui è riportato nel documento.
string generate-id(node-set?)
Note
L'identificatore univoco deve essere formato da caratteri alfanumerici ASCII e deve iniziare con un carattere alfabetico. Pertanto, da un punto di vista sintattico la stringa è un nome XML. Non vi è alcuna certezza che un identificatore univoco generato venga diversificato da eventuali identificatori univoci specificati nel documento di origine. Se l'argomento set di nodi è vuoto, viene restituita una stringa vuota. Se l'argomento viene omesso, viene impostato il nodo di contesto come predefinito.
Esempio
File 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>
File 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>
L'output formattato è il seguente:
Se si fa clic sul pulsante sinistro in Internet Explorer, in una finestra di avviso verrà visualizzato "IDAHAGJD".
Se si fa clic sul pulsante destro in Internet Explorer, in una finestra di avviso verrà visualizzato "IDAPAGJD".
Notare che il valore identificatore viene generato in fase di esecuzione. Pertanto, i valori specifici possono variare in base alle diverse chiamate della trasformazione.
L'output del processore è il seguente:
<html>
<body><button id="IDAHAGJD" onclick="alert(this.id)">Gambardella, Matthew</button>
<button id="IDAPAGJD" onclick="alert(this.id)">Ralls, Kim</button></body>
</html>