Élément <xsl:attribute>
Crée un nœud d'attribut et le joint à un élément de sortie.
<xsl:attribute
name = "attribute-name"
namespace = "uri-reference">
</xsl:attribute>
Attributs
- name
Obligatoire. Nom de l'attribut à créer. Si cette valeur est un nom qualifié (QName), le nœud d'attribut est créé dans l'espace de noms actuellement lié au préfixe, sauf s'il est remplacé par un attributnamespace
. La valeur de l'attributname
est interprétée comme un modèle de valeur d'attribut — des expressions entre accolades sont évaluées et converties en chaînes, comme dans l'élément<xsl:value-of>
. Cela permet de calculer le nom de l'attribut ou de l'obtenir du XML source.
- espace de noms
URI d'espace de noms de l'attribut créé. Si l'attributname
contient un nom qualifié, le préfixe spécifié sera lié à l'espace de noms spécifié dans l'attribut namespace. Cela pourrait entraîner l'ajout d'autres déclarations d'espace de noms lors de la sérialisation. Cette valeur est interprétée comme un modèle de valeur d'attribut.
Informations sur l'élément
Nombre d'occurrences |
Illimité |
Éléments parents |
xsl:copy, xsl:element, xsl:fallback, xsl:for-each, xsl:if, xsl:message, xsl:otherwise, xsl:param, xsl:template, xsl:variable, xsl:when, xsl:with-param |
Éléments enfants |
xsl:apply-imports, xsl:apply-templates, xsl:call-template, xsl:choose, xsl:copy, xsl:copy-of, xsl:fallback, xsl:for-each, xsl:if, xsl:message, xsl:number, xsl:text, xsl:value-of, xsl:variable |
Notes
Le contenu de cet élément spécifie la valeur de l'attribut.
Des attributs peuvent être ajoutés ou modifiés pendant la transformation en plaçant l'élément <xsl:attribute>
dans des éléments qui génèrent une sortie, comme l'élément <xsl:copy>
. Notez que <xsl:attribute>
peut être appliqué directement à des éléments de sortie et pas seulement en conjonction avec <xsl:element>
.
Tous les attributs doivent être appliqués avant que les enfants soient ajoutés à l'élément.
Exemples
Ce petit exemple génère un attribut qui obtient sa valeur de la source XML. Il génère une sortie sous la forme <IMG src="value-from-XML-source"/>
, utilisant une expression XPath qui récupère les données appropriées de la source XML – ici, "imagenames/imagename"
.
Fichier XSLT
<IMG>
<xsl:attribute name="src">
<xsl:value-of select="imagenames/imagename" />
</xsl:attribute>
</IMG>
Sortie
<IMG src=" imagenames/imagename"/>
Alors que l'élément <xsl:attribute>
peut être extrêmement utile pour créer de manière dynamique des attributs qui ne sont pas connus avant de transformer un document, vous ne devez pas utiliser cet élément si vous connaissez déjà les attributs. Dans l'exemple précédent, il se peut que vous sachiez déjà qu'un élément IMG
doive contenir un attribut src
. Puisque vous connaissez cette exigence avant de transformer le document, vous devriez ne pas avoir à utiliser l'élément <xsl:attribute>
. Vous pourriez simplifier la syntaxe de transformation et obtenir le même résultat en utilisant :
<IMG src="{imagenames/imagename}"/>
En utilisant l'élément <xsl:attribute>
au lieu de modèles de valeur d'attribut, vous pouvez :
Calculer le nom de l'attribut
Utiliser des conditionnels, des modèles et des ensembles d'attributs en relation avec la génération d'attributs
Ajouter des attributs à un élément généré par l'élément
<xsl:copy>
ou<xsl:element>
Cette section comporte également les exemples complets suivants.