Está usted en Indice > Construcción > Lenguajes > XML > Manual de XML > XSL: Hojas de estilo para la transformación de documentos XML
Construcción
Maletín
Utilidades
Cursos
Promoción
Rentabilidad
Zona Novatos
Foros
Acceso a tu cuenta

MANUAL DE XML

XSL: HOJAS DE ESTILO PARA LA TRANSFORMACION DE DOCUMENTOS XML

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:

Manual XML

-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.



Versión imprimible - Versión imprimible de este documento
Enviar e-mail - Enviar por e-mail este documento
Publicidad

Información legal | Política de Privacidad | Contacte con nosotros

Otro proyecto de Factoría de Internet. Copyright© 2003-2008 Factoría de Internet S.L.. Todos los derechos reservados.


Página generada el 11-10-2008 a las 18:22:46