Élément <xsl:element>
Crée un élément de sortie et lui donne le nom spécifié.
<xsl:element
name = "element-name"
namespace = "uri-reference"
use-attribute-sets = QName
</xsl:element>
Attributs
name
Requis. Nom de l'élément à créer. Si cette valeur est un Noms qualifiés (XSLT), le nœud d'élément est créé dans l'espace de noms actuellement lié au préfixe, sauf s'il est remplacé par un attribut namespace. La valeur de l'attribut name est interprétée comme un modèle de valeur d'attribut, les expressions entre accolades étant évaluées et converties en chaînes, comme dans <xsl:value-of>. Cela permet de calculer le nom de l'élément ou de l'obtenir du XML source.namespace
URI d'espace de noms de l'élément créé. Si l'attribut name contient un nom qualifié, le préfixe spécifié sera lié à l'espace de noms spécifié dans l'attribut namespace. Cela pourrait exiger des déclarations d'espaces de noms supplémentaires lors de la sérialisation. La valeur namespace est interprétée comme un modèle de valeur d'attribut.use-attribute-sets
Liste d'ensembles d'attributs, séparés par des espaces, spécifiée par un Noms qualifiés (XSLT). La spécification de cet attribut déclare chaque attribut dans chaque ensemble d'attributs de la liste.
Informations sur les éléments
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 de sortie |
Éléments enfants |
xsl:apply-templates, xsl:attribute, xsl:call-template, xsl:choose, xsl:comment, xsl:copy, xsl:copy-of, xsl:element, xsl:for-each, xsl:if, xsl:processing-instruction, xsl:text, xsl:value-of, xsl:variable, éléments de sortie |
Notes
L'élément <xsl:element> permet de créer un élément avec un nom calculé. Le nom de l'élément à créer est spécifié par un attribut name obligatoire et un attribut namespace facultatif. Le contenu de l'élément <xsl:element> est un modèle pour les attributs et les enfants de l'élément créé.
Cet élément fournit un mécanisme d'échappement pour créer des éléments avec des conflits d'espace de noms, comme XSLT même.
Exemple
L'élément <xsl:element> est nécessaire car les éléments XSLT ne peuvent pas être utilisés comme éléments de sortie. Cet exemple montre comment générer un élément <xsl:template>.
Fichier XML (item.xml)
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="element.xsl" ?>
<root>
<item>My Item</item>
</root>
Fichier XSLT (element.xsl)
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:template match="item">
<xsl:element name="xsl:template">
<xsl:attribute name="match">cost</xsl:attribute>
<xsl:attribute name="xml:space">preserve</xsl:attribute>
<xsl:apply-templates/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
Sortie
Voici les données en sortie formatées :
My Item
Voici les données en sortie du processeur ; des sauts de ligne ont été ajoutés pour plus de clarté.
<?xml version="1.0"?>
<xsl:template match="cost"
xml:space="preserve"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
My Item</xsl:template>