Présentation des variables XSLT
Dans les scripts XSLT, vous déclarez les variables à l’aide de l’élément <xsl:variable>
. L’attribut name
spécifie le nom de la variable, qui est sensible à la casse. Une fois que vous avez déclaré une variable, vous pouvez la référencer dans une expression XPath à l’aide du nom de la variable préfixe d’un signe dollar ($).
Les variables sont immuables; vous pouvez définir la valeur d’une variable uniquement lorsque vous déclarez la variable, après quoi la valeur est fixe. Vous initialisez une variable en incluant l’attribut select
et une expression dans la <xsl:variable>
balise. L’exemple suivant déclare et initialise la variable location
. La location
variable est ensuite utilisée pour initialiser la message
variable.
<xsl:variable name="location" select="$dot/@location"/> <xsl:variable name="message" select="concat('We are in ', $location, ' now.')"/>
Vous pouvez définir des variables locales et globales. Les variables sont globales s’il s’agit d’enfants de l’élément <xsl:stylesheet>
. Sinon, ils sont locaux. La valeur d’une variable globale est accessible n’importe où dans la feuille de style. La portée d’une variable locale est limitée au modèle ou au bloc de code dans lequel elle est définie.
Les variables XSLT peuvent stocker toutes les valeurs que vous pouvez calculer ou définir statiquement. Cela inclut les structures de données, les hiérarchies XML et les combinaisons de texte et de paramètres. Par exemple, vous pouvez affecter la sortie XML d’une commande de mode opérationnel à une variable, puis accéder à la hiérarchie au sein de la variable.
Le modèle suivant déclare la message
variable. La message
variable inclut à la fois des valeurs de texte et de paramètres. Le modèle génère un message de journal système en se référant à la valeur de la variable de message.
<xsl:template name="emit-syslog"> <xsl:param name="user"/> <xsl:param name="date"/> <xsl:param name="device"/> <xsl:variable name="message"> <xsl:text>Device </xsl:text> <xsl:value-of select="$device"/> <xsl:text> was changed on </xsl:text> <xsl:value-of select="$date"/> <xsl:text> by user '</xsl:text> <xsl:value-of select="$user"/> <xsl:text>.'</xsl:text> </xsl:variable> <syslog> <message> <xsl:value-of select="$message"/> </message> </syslog> </xsl:template>
Le message du journal système qui en résulte est le suivant :
L’équipement device-name a été modifié date par l’utilisateur'user.
Le tableau 1 fournit des exemples de déclarations de variables XSLT ainsi que des explications de pseudocode.
Déclaration de variable |
Explication du pseudocode |
---|---|
|
Attribue le |
|
Attribue la valeur du |