Diferencia entre revisiones de «Usuario:Lmorillas/modulo lenguajes de marcas/xml/xslt»

De WikiEducator
Saltar a: navegación, buscar
(Página creada con '{{MiTitulo| Intro a XSLT}} == Qué es? == XSLT es un lenguaje basado en reglas. Transforma un documento xml en otro. Puede filtrar, reordenar secciones etc. == Proceso de XSLT…')
 
(Ejercicicos)
 
(5 revisiones intermedias por el mismo usuario no mostrado)
Línea 1: Línea 1:
 
{{MiTitulo| Intro a XSLT}}
 
{{MiTitulo| Intro a XSLT}}
  
== Qué es? ==
+
== ¿Qué es? ==
XSLT es un lenguaje basado en reglas. Transforma un documento xml en otro. Puede filtrar, reordenar secciones etc.
+
* 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 ==
 +
<source lang="xml">
 +
<?xml version="1.0" encoding='ISO-8859-1'?>
 +
<?xml-stylesheet href="factura.xsl" type="text/xsl"?>
 +
<facturae>
 +
  ...
 +
</facturae>
 +
</source>
  
 
== Proceso de XSLT ==
 
== Proceso de XSLT ==
* Los nodos del árbol se identifican por patrones.
+
* Las reglas template identifican los nodos por patrones (operadores XPath)
* Las reglas template identifican los nodos (operadoes XPath)
+
 
* Las acciones pueden ser salida de texto (literal) o instrucciones xslt.
 
* Las acciones pueden ser salida de texto (literal) o instrucciones xslt.
 
   Autor:  
 
   Autor:  
Línea 34: Línea 43:
 
<xsl:template match=comment() | processing-instruction() />
 
<xsl:template match=comment() | processing-instruction() />
 
</source>
 
</source>
 +
 +
== Elementos básicos de xslt ==
 +
* http://www.bib.uc3m.es/~nogales/cursos/xslt.html
 +
 +
=== 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 ==
 +
* http://geneura.ugr.es/~jmerelo/XSLT/XSLT-2001-1ed.htm
 +
* http://geneura.ugr.es/~jmerelo/XSLT/XSLT-HTML-Baeza-2002.htm
 +
* http://www.w3schools.com/xsl/
 +
* http://www.lsi.us.es/docencia/get.php?id=5591
 +
 +
== Ejercicios ==
 +
* [[/ejercicio xslt estudios | Ejercicio centro estudios]]

Última revisión de 17:57 16 feb 2012


¿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