Elemento <xsl:element>

Crea un elemento de salida con el nombre especificado.

<xsl:element
  name = "element-name"  
  namespace = "uri-reference"
  use-attribute-sets = QName
</xsl:element>

Atributos

  • nombre
    Necesario. Nombre del elemento que se va a crear. Si este valor es Nombres completos, el nodo de elemento se crea en el espacio de nombres enlazado actualmente al prefijo, a no ser que sea reemplazado por un atributo namespace. El valor del atributo name se interpreta como una plantilla de valor de atributo — es decir, las expresiones entre llaves se avalúan y convierten en cadenas, como en <xsl:value-of>. Esto permite calcular u obtener el nombre del elemento a partir del código fuente XML.
  • espacio de nombres
    El espacio de nombres URI del elemento creado. Si el atributo name contiene un QName, el prefijo especificado allí estará limitado al espacio de nombres especificado en el atributo namespace. Esto podría requerir declaraciones de espacio de nombres adicionales al serializar. El valor namespace se interpreta como una plantilla de valor de atributo.
  • use-attribute-sets
    Una lista de conjuntos de atributos separados por espacios en blanco, especificada como Nombres completos. Al especificar este atributo se declara cada atributo en los conjuntos de atributos listados.

Información del elemento

Número de apariciones

Ilimitado

Elementos primarios

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, elementos de salida

Elementos secundarios

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, elementos de salida

Comentarios

El elemento <xsl:element> permite crear un elemento con un nombre calculado. El nombre del elemento que se va a crear se especifica mediante un atributo name necesario y un atributo namespace opcional. El contenido del elemento <xsl:element> es una plantilla para los atributos y secundarios del elemento creado.

Este elemento proporciona un mecanismo de escape para crear elementos con conflictos de espacio de nombres, como el propio XSLT.

Ejemplo

El elemento <xsl:element> es necesario ya que los elementos XSLT no se pueden utilizar como elementos de salida. Este ejemplo muestra cómo dar salida a un elemento <xsl:template>.

Archivo XML (item.xml)

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="element.xsl" ?>
<root>
   <item>My Item</item>
</root>

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

Resultados

Este es el resultado con formato:

My Item

A continuación se muestra el resultado del procesador, al que se han añadido saltos de línea por razones de claridad.

<?xml version="1.0"?>
<xsl:template match="cost" 
      xml:space="preserve" 
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
My Item</xsl:template>