Intro a XSLT

De WikiEducator
< Usuario:Lmorillas‎ | modulo lenguajes de marcas‎ | xml
Revisión a fecha de 18:57 16 feb 2012; Lmorillas (Discusión | contribuciones)

(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
Saltar a: navegación, buscar


¿Qué es?

  • XSLT es un lenguaje para transformar documentos XML. Está basado en reglas. Puede filtrar, reordenar secciones etc.
  • Formato de salida: xml, html, texto, ...

Enlazar una hora de estilos a un fichero xml

<?xml version="1.0" encoding='ISO-8859-1'?>
<?xml-stylesheet href="factura.xsl" type="text/xsl"?>
<facturae>
   ...
</facturae>

Proceso de XSLT

  • Las reglas template identifican los nodos por patrones (operadores XPath)
  • Las acciones pueden ser salida de texto (literal) o instrucciones xslt.
 Autor: 
 <xsl:value-of select="nombre" />
 <xsl:apply-templates />

¿Cómo crear una hoja de estilo para genera html?

Estructura del árbol

  • Dónde está la información y cómo

Generar estructura del html

  • Estructura del doc html: head y body
  • Dentro de body: apply-templates

Una regla template para cada nodo

  • Si no existe una regla para un nodo, se aplica la regla básica: imprimir todos los nodos de texto (built in rules)

Añadir etiquetas html

Reglas predefinidas

<xsl:template match="/|*">
  <xsl:apply-templates />
<xsl:template>
 
<xsl:template match="text()|@">
  <xsl:value-of select="." />
<xsl:template>
 
<xsl:template match=comment() | processing-instruction() />

Elementos básicos de xslt

template

Una hoja de estilo XSL consiste en un conjunto de reglas llamadas plantillas (templates). Cada elemento <xsl:template> contiene instrucciones de trasformación y presentación para aplicar a un nodo (match)

value-of

Selecciona el valor de un elemento XML y añadirlo al documento resultado de la transformación.

for-each

Permite realizar bucles en XSLT.

sort

Para ordenar nodos

if

La plantilla se aplica sólo si se cumple la condición.

choose - when - otherwise

Condiciones múltiples

apply-templates

Aplica una plantilla al elemento actual o a sus nodos hijos.


Documentación

Ejercicios