Diferencia entre revisiones de «Usuario:Lmorillas/modulo lenguajes de marcas/xml/xslt»
De WikiEducator
(→Ejercicicos) |
|||
(4 revisiones intermedias por el mismo usuario no mostrado) | |||
Línea 4: | Línea 4: | ||
* XSLT es un lenguaje para transformar documentos XML. Está basado en reglas. 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, ... | * 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 == | ||
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 18:57 16 feb 2012
Contenido
¿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
- 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