<xsl:element>  
Permet de créer un élément dans le document de sortie. Son fonctionnement est similaire à celui de l'élément <xsl:attribute>.
 
Catégorie

Instruction

 
Attributs obligatoires
name
Définit le nom de cet élément. Une valeur de type name= " fred " produira un élément < fred > dans le document de sortie.

 
Attributs facultatifs
namespace
Définit l'espace de noms utilisé pour cet attribut.

use-attribute-sets
Répertorie un ou plusieurs ensembles d'attributs qui devraient être utilisés par cet élément. Si vous indiquez plusieurs ensembles d'attributs, séparez leurs noms par des espaces blancs.

 
Contenu

Un modèle XSLT.

 
Apparaît dans

<xsl:element> apparaît dans un modèle.

 
Défini dans

XSLT section 7.1.2, Création d'éléments à l'aide de xsl:element.

 
Exemple

La feuille de style générique suivante est utilisée pour copier le document d'entrée dans l'arborescence de résultat, avec une exception : tous les attributs des documents originaux sont convertis en éléments enfants dans l'arborescence de résultat. Le nom du nouvel élément correspondra au nom de l'attribut de format, et son texte correspondra à la valeur de l'attribut. Le nom de l'attribut n'étant pas connu avant de traiter le document XML source, il faut utiliser l'élément <xsl:element> pour créer l'arborescence de résultat. L'aspect de la feuille de style est le suivant :

<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:output method="xml"/>

  <xsl:template match="*">
    <xsl:element name="{name()}">
      <xsl:for-each select="@*">
        <xsl:element name="{name()}">
          <xsl:value-of select="."/>
        </xsl:element>
      </xsl:for-each>
      <xsl:apply-templates select="*|text()"/>
    </xsl:element>
  </xsl:template>

</xsl:stylesheet>

Cette feuille de style utilise l'élément <xsl:element> à deux endroits : tout d'abord pour créer un nouvel élément ayant le même nom que l'élément original, et ensuite pour créer un nouvel élément ayant le même nom que chaque attribut. Cette feuille de style est appliquée au document suivant :

<?xml version="1.0"?>
<report>
  <title>Miles Flown in 2001</title>
  <month sequence="01">
    <miles-flown>12379</miles-flown>
    <miles-earned>35215</miles-earned>
  </month>
  <month sequence="02">
    <miles-flown>32857</miles-flown>
    <miles-earned>92731</miles-earned>
  </month>
  <month sequence="03">
    <miles-flown>19920</miles-flown>
    <miles-earned>76725</miles-earned>
  </month>
  <month sequence="04">
    <miles-flown>18903</miles-flown>
    <miles-earned>31781</miles-earned>
  </month>
</report>

Les résultats sont les suivants :

<?xml version="1.0" encoding="UTF-8"?>
<report>
  <title>Miles Flown in 2001</title>
  <month><sequence>01</sequence>
    <miles-flown>12379</miles-flown>
    <miles-earned>35215</miles-earned>
  </month>
  <month><sequence>02</sequence>
    <miles-flown>32857</miles-flown>
    <miles-earned>92731</miles-earned>
  </month>
  <month><sequence>03</sequence>
    <miles-flown>19920</miles-flown>
    <miles-earned>76725</miles-earned>
  </month>
  <month><sequence>04</sequence>
    <miles-flown>18903</miles-flown>
    <miles-earned>31781</miles-earned>
  </month>
</report>

L'élément <xsl:element> a créé tous les éléments du document de sortie, y compris les éléments <sequence> créés à partir des attributs sequence du document original.