<xsl:element> |
Diese Anweisung ermöglicht die Erstellung eines Elements im Ausgabedokument. Sie funktioniert ähnlich wie die Anweisung <xsl:attribute>.
Kategorie
Anweisung
Obligatorische Attribute
name Dieses Attribut definiert den Namen dieses Elements. Der Wert name= " fred " etwa erzeugt im Ausgabedokument das Element < fred > .
Optionale Attribute
namespace Definiert den Namensraum für dieses Attribut. use-attribute-sets Listet eine oder mehrere Attributmengen auf, die vom erzeugten Element verwendet werden sollen. Wenn Sie mehrere Attributmengen angeben, sollten Sie die Namen durch Leerraumzeichen trennen.
Inhalt
Eine XSLT-Vorlage
Übergeordnetes Element
<xsl:element> erscheint innerhalb einer Vorlage.
Definition
XSLT-Abschnitt 7.1.2, Erzeugung von Elementen mit xsl:element.
Beispiel
Es wird ein generisches Stylesheet verwendet, welches das Eingabedokument in den Ergebnisbaum kopiert, mit einer Ausnahme: alle Attribute im Originaldokument werden im Ausgabedokument in untergeordnete Elemente konvertiert. Als Name der neuen Elemente wird der Name des Attributs format verwendet und sein Text wird zum Wert des Attributs. Da man nicht wissen kann, wie der Name des Attributs lautet, bevor das XML-Ausgangsdokument verarbeitet worden ist, muss mit Hilfe des Elements <xsl:element> der Ergebnisbaum erstellt werden. Hier der Inhalt des Stylesheets:
    <?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>
Dieses Stylesheet verwendet das Element <xsl:element> an zwei Stellen: erstens, um ein neues Element mit demselben Namen wie das Originalelement zu erstellen und zweitens, um neue Elemente mit den Namen der einzelnen Attribute zu erstellen. Das Stylesheet wird auf das folgende Dokument angewendet:
    <?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>
Und hier die Ergebnisse:
    <?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>
Die Anweisung <xsl:element> hat alle Elemente im Ausgabedokument erstellt, einschließlich der <sequence>-Elemente, die aus den sequence-Attributen im Originaldokument entstanden sind.