É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
Obligatoire. Nom de l'élément à créer. Si cette valeur est un Noms qualifiés, 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 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 <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'attributname
contient un nom qualifié, le préfixe spécifié sera lié à l'espace de noms spécifié dans l'attributnamespace
. Cela pourrait exiger des déclarations d'espaces de noms supplémentaires lors de la sérialisation. La valeurnamespace
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. La spécification de cet attribut déclare chaque attribut dans chaque ensemble d'attributs de la liste.
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 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>