Saltar al contenido principal

attribute

El elemento attribute permite añadir atributos a los elementos. Este elemento permite reemplazar atributos ya existentes con nombres equivalentes.

La estructura de este elemento es la siguiente:

<xsl:attribute name="nombre" namespace="URI">
<!-- template -->
</xsl:attribute>

Donde:

  • name es un atributo obligatirio que permite especificar el nombre del atributo.
  • select es un atributo opcional que define la URI del espacio de nombres (namespace) utilizado para el atributo

Para añadir un atributo color a un elemento <pintura>, se utilizaría el siguiente código:

<pintura>
<xsl:attribute name="color"/>
</pintura>

El valor de un atributo se define en el contenido del elemento attribute:

<pintura>
<xsl:attribute name="color">Rojo</xsl:attribute>
</pintura>

Opcionalmente, se puede obtener el valor mediante el elemento value-of:

<pintura>
<xsl:attribute name="color">
<xsl:value-of select="valor"/>
</xsl:attribute>
</pintura>

Si se añade un atributo a un elemento que tiene contenido, el elemento attribute debe ir en primer lugar:

<pintura>
<xsl:attribute name="color">
<xsl:value-of select="valor-atributo"/>
</xsl:attribute>
<xsl:value-of select="valor-elemento"/>
</pintura>

Es decir, lo siguiente sería incorrecto:

<pintura>
<xsl:value-of select="valor-elemento"/>
<xsl:attribute name="color">
<xsl:value-of select="valor-atributo"/>
</xsl:attribute>
</pintura>

Plantillas de valores de atributos

Las plantillas de valores de atributos o Attribute Value Templates son una característica de XSLT que permiten insertar expresiones dinámicas dentro de los valores de los atributos utilizando llaves (curly braces).

La sintaxis sería la siguiente:

<pintura color="{valor-atributo}"></pintura>

Esta sintaxis permite simplificar las hojas XSL ya que permiten omitir el uso del elemento attribute. El código equivalente utilizando attribute sería el siguiente:

<pintura>
<xsl:attribute name="color" select="valor-atributo"/>
</pintura>