XSL es un lenguaje creado para dar estilo a los documentos XML a los cuales se aplica. Así, XSL es una especificación que se compone de partes o recomendaciones:
-Xpath: lenguaje que permite escribir expresiones para la búsqueda de nodos dentro del arbol XML.
-XSLT: reglas o patrones para la transformación del contenido de los nodos XML sobre los cuales se consigue una correspondencia. Si lo que queremos es generar páginas HTML a partir de documentos XML, podemos complementar/sustituir XSL por CSS.
-Formatting Objects: actualmente, constituye un lenguaje de especificación de estilo en base al cual nos es posible la generación de PDFs.
Patrones de transformación XSLT.-
Definición de las cabeceras de la página XSL
Ejemplo 16.
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform
" version="1.0">
...
</xsl:stylesheet>
El patrón o template: Elemento básico de la páginas de estilo
Para cada nodo del árbol XML tenemos la posibilidad de definir un patrón de estilos que marcará como se va a presentar este nodo en el documento final. Por ejemplo, si tenemos el siguiente documento XML:
Ejemplo 17:
<?xml version="1.0" encoding="ISO-8859-1"?>
<test1>
<titulo>Prueba de patrones XSL</titulo>
<descripcion>Cuerpo del documento</descripcion>
</test1>
... y esta hoja de estilos:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform
" version="1.0">
<xsl:template match="test1">
<html>
<head>
<title><xsl:apply-templates select="titulo"
mode="head"/></title>
</head>
<body>
<xsl:apply-templates/>
</body>
</html>
</xsl:template>
<xsl:template match="titulo" mode="head">
<xsl:value-of select="text()"/>
</xsl:template>
<xsl:template match="titulo">
<h1><xsl:value-of select="text()"/></h1>
</xsl:template>
<xsl:template match="descripcion">
<h3><xsl:value-of select="text()"/></h3>
</xsl:template>
</xsl:stylesheet>
... el resultado de la transformación será el siguiente:
<html>
<head>
<meta content="text/html; charset=UTF-8"
http-equiv="Content-Type">
<title>Prueba de patrones XSL</title>
</head>
<body>
<h1>Prueba de patrones XSL</h1>
<h3>Cuerpo del documento</h3>
</body>
</html>
En este ejemplo podemos apreciar de varias instrucciones XSL:
1.Uso de la instrucción "xsl:template" para definir nuevos templates con los que van a ir identicándose los nodos del documento XML. En los templates, podemos utilizar el atributo modificador "mode" con el fin de poder llamar a un mismo template desde dos contextos distintos en los que queremos dos resultados distintos. Es por esto que procesar el nodo "title" desde la cabecera o desde el cuerpo del documento HTML, va ha tener una representación distinta.
2.Uso de sentencias de procesamiento de templates como "xsl:apply-templates". Esta instrucción lanza la búsqueda de templates a aplicar a partir del punto en el que nos encontremos del árbol XML. Si ya hemos procesado el nodo titulo con un template 'xsl:template match="titulo"' y desde aquí queremos procesar la descripción, no podremos utilizar directamente un "xsl:apply-templates" ya que este nodo se encuentra en otro punto de la jerarquía. A esta instrucción podemos aplicarle el atributo modificador "select", para restringir los templates que se aplican a los de un tipo determinado.
Hay 54 opiniones. Opina sobre este curso.
| Cursos | Valoración | Alumnos | Vídeo | |
|---|---|---|---|---|
|
Estrategias para transmitir confianza en las empresas de Internet Aún con una competencia cada vez mayor y más agresiva, la mayor parte de los sitios web tiene en sus propias limitaciones a su mayor enemigo de ventas. La necesi... [20/01/05] |
|
1.735 | ||
|
MySQL básico. Bases de datos y software libre (cuarta parte) Curso de informática sobre MySQL básico incluida la instalación, configuración y descarga de MySQL. En esta cuarta parte de nuestro curso sobre Bases de datos y software ... [30/10/08] |
|
442 | ||
|
Procesos en C. Sincronización (primera parte) Curso de informática sobre sincronización de procesos en C y señales en linux que te ofrece la posibilidad de comprender los mecanismos de comunicación entre procesos inf... [21/10/08] |
|
993 | ||
Publicar en
del.icio.us
digg
meneame