<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.