Hojas de Estilos XSL
Hojas de Estilos XSL
Fundamentos
Exes
Plantillas
Establece las transformaciones a realizar en el documento.
Se definen utilizando el elemento xsl:template.
A través del atributo match, se establece el patrón.
El patrón indica la rama del árbol XML sobre la que se aplica la plantilla.
El atributo name que dará nombre a la plantilla para poder ser invocada
desde la instrucción
<xsl:call-template name=nombre_de_plantilla>
Para seleccionar el árbol del documento completo, se utiliza el patrón
raíz (/): <xsl:template match=“/”>
instrucciones de plantilla
</xsl:template>
XPATH
Otros caracteres empleados para la construcción de patrones son:
. Nodo actual
.. Primario del nodo actual
| Alternativas (nombre|apellido)
// Hace que coincidan los descendientes en vez de los
secundarios
* Comodín; hace que coincidan todos los elementos
@ Selección de atributo
[] Filtro para afinar
$all$ Todos los nodos deben de cumplir condición
$any$ Algun nodo debe de cumplir la condición
Operadores
and
or
not()
=
!=
< $lt$
<= $ile$
> $gt$
>= $ige$
Elementos de plantilla
Se utilizan para construir las instrucciones de plantilla.
Pertenecen al vocabulario XSLT, definido en el espacio de nombres XSL.
Los más utilizados son:
xsl:value-of
xsl:if
xsl:for-each
xsl:apply-templates
xsl:choose
xsl:output
xsl: include
EJEs (Axes)
Un eje especifica la relación dentro de un árbol que existe entre los nodos
seleccionados y el nodo contexto.
Sintaxis
eje:: nodo de comprobación [predicados]
ejemplo
child::cliente[attribute::NIF =“53343246X”]
Ejes existentes
ancestor* Antecesores del nodo contexto
attribute Atributos del nodo contexto
child Contiene los ojos de nodo contexto
descendent* Todos los descendientes de nodo contexto
parent Contiene el padre de nodo contexto
self Contiene nodo contexto
namespace El namespace del nodo contexto
xsl:value-of
Inserta el valor de un elemento o atributo en la salida resultante.
En el caso de que se utilice en una plantilla cuyo patrón contiene nodos
secundarios, puede utilizarse el atributo select para seleccionar el
atributo o subelemento cuyo valor se va a utilizar:
xsl:apply-templates
Aplica, en el lugar donde aparece, la plantilla definida para el elemento
indicado en el atributo select.
xsl:if
Aplica una serie de instrucciones si se cumple la condición establecida
en el atributo test:
xsl:for-each
Se utiliza para recorrer los elementos de un documento, y realizar una
serie de operaciones con los mismos.
El atributo select, determina que elementos se van a recorrer.
xsl:choose
Permite seleccionar entre varias opciones, estas se establecen mediante
<xsl:when>:
Ejercicio
Dado el siguiente documento xml:
La solución es: