PDF de programación - Unidad 4: XSLT y XPATH

Imágen de pdf Unidad 4: XSLT y XPATH

Unidad 4: XSLT y XPATHgráfica de visualizaciones

Publicado el 1 de Agosto del 2019
1.079 visualizaciones desde el 1 de Agosto del 2019
1,9 MB
43 paginas
Creado hace 12a (20/02/2012)
Unidad 4:
XSLT y XPATH

JJ Taboada León

IES San Sebastián, Departamento de Informática

LENGUAJE DE MARCAS Y SGI

Curso 2011 / 2012



Guíon del tema

 ¿Qué es XSLT?
 Aplicación de las
transformaciones

 Estructura y sintáxis

XSLT

 Elemetos XSLT
 XSLT con CSS

EJERCICIOS
 Transformar documentos

XML con Notepad++ y
Dreamwaver

 Prácticas con XML HTML y

CSS



¿QUÉ ES XSLT?

 XSLT (eXtensible Stylesheet Language – Transformations),
Lenguaje de hoja de estilo ampliable para transformaciones
 Describe un lenguaje basado en XML para transformar documentos

XML a cualquier otro formato

 XSLT es el lenguaje de hojas de estilo recomendado de XML.

 XSLT es mucho más sofisticado que el CSS.

 XSLT puede ser utilizado para transformar documentos XML en

HTML, antes de ser mostrados en un navegador.



Aplicación de las transformaciones

 Utilizaremos XSLT para transformar documentos entre esquemas

XML que permitan su procesamiento por distintos sistemas

 Utilizaremos XSLT para transformar documentos XML en HTML,
WML, o cualquier otro formato que facilite su presentación en la
pantalla de un ordenador o en impresora

 La transformación de XML a HTML es el principal uso que se

hace de XSLT

WML(Wireless Markup Language)
lenguaje que se utiliza para construir las
páginas que aparecen en las pantallas de
los teléfonos móviles y los asistentes
personales digitales (PDA)

Aplicación de las transformaciones
 No debemos confundir las

transformaciones XSLT con la
presentación de documentos XML con
CSS


 Con XSLT, generaremos un documento
HTML a partir de un documento XML.
Se tratará de dos documentos “distintos”


 Con CSS, el navegador recibe un

documento XML que formatea utilizando
las reglas CSS para presentarlo en pantalla
de forma que sea más fácilmente legible,
pero es el mismo documento

HERRAMIENTAS

 Actualmente contamos con varias herramientas para realizar

transformaciones XSLT:
 Saxon, desarrollado en Java por Michael Kay (un gurú de XSLT)
 xt, diseñado por James Clark
 Dreamweaver
 XMLspy
 En las prácticas usaremos Notepad++ con el complemento XMLtools y

Dreamwaver

Estructura de una hoja de estilo XSLT

 Una hoja de estilo XSLT es un documento XML. Debe estar bien

formado.

 Las hojas de estilo

se guardarán

siempre en archivos

independientes con extensión .xsl

 Deben comenzar con una declaración XML:

<?xml version="1.0“?>

 El elemento raíz de la hoja de estilo XSLT es stylsheet.

 Este elemento contendrá a todos los demás, y debe ir precedido
por el alias xsl correspondiente al espacio de nombres para hojas
de estilo XSLT.

Estructura de una hoja de estilo XSL



<?xml version="1.0" encoding="ISO-8859-1”?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">



...................


...................
</xsl:stylesheet>



Estructura de una hoja de estilo XSL

 Entras las marcas de inicio y de fin del elemento raíz

xsl:stylesheet, se escribirán las reglas de transformación que se
llaman plantillas

 Cada regla se definirá mediante un elemento xsl:template (una

plantilla)

 Se utiliza el atributo match para asociar una plantilla con un

elemento XML. El atributo match también se puede utilizar para
definir un modelo para todo el documento XML. El valor del
atributo match es una expresión de XPath (eje. match = "/"
define todo el documento).

 La regla indica qué instancias de los elementos del documento

XML se van a transformar.

Estructura de una hoja de estilo XSL
REGLAS DE TRANSFORMACIÓN



salida

árbol de origen al que se
aplica esta plantilla

<h2> <xsl:value-of select="." /> </h2>

EJEMPLO:
<xsl:template match=”//nombre”>
<html>
<body>

</body>
</html>
</xsl:template>

 La regla se aplicará a todas las instancias del elemento nombre. Esto se indica mediante el

atributo match que acompaña al elemento xsl:template.

 Entre las etiquetas de inicio y de fin del elemento xsl:template se escribe la transformación

que se debe realizar...

 es decir, qué texto y qué marcas se escribirán en el documento resultado de la

transformación, cada vez que se encuentre una instancia del elemento nombre en el
documento origen.

 Con <xsl:value-of...>, se recupera y escribe en el documento resultado el valor del

elemento que está siendo procesado.

Ejemplo transformación XSLT
Documento XML

<nombre>Madrid</nombre>
<habitantes>3500000</habitantes>

<?xml version=“1.0” encoding="ISO-8859-1" ?>
<?xml-stylesheet type="text/xsl" href="prueba.xsl" ?>
<ciudades>
<ciudad>


</ciudad>
<ciudad>


</ciudad>
<ciudad>


</ciudad>
</ciudades>

<nombre>Málaga</nombre>
<habitantes>800000</habitantes>

<nombre>Toledo</nombre>
<habitantes>50000</habitantes>



Referencia al
documento XSL

Documento XML

Ejemplo transformación XSLT
Documento XSL

<?xml version="1.0" encoding="ISO-8859-1”?>
<xsl:stylesheet version="1.0"

xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

Documento XSL

Queremos obtener los
nombres de las ciudades

<xsl:template match=“//nombre">



<h2> <xsl:value-of select="." /> </h2>

<html>
<body>

</body>
</html>



</xsl:template>
</xsl:stylesheet>


Ejemplo transformación XSLT
Resultado

<h2>Madrid</h2>3500000

<h2>Málaga</h2>800000

<h2>Toledo</h2>50000



 El resultado obtenido no es el documento HTML esperado

 Vemos que en el documento de salida no sólo se ha incluido el texto de los

elementos procesados, sino el de todos los elementos del documento original…

 Para evitar ésto, tenemos que hacer unos cambios en la hoja de estilo XSLT (ver

siguiente página):

Ejemplo transformación XSLT
Documento xsl mejorado

<title>Ejemplo XSLT</title>

<html>
<head>

</head>
<body>



<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">



</xsl:template>

<xsl:template match="nombre">

</xsl:template>

</xsl:stylesheet>

<h1> CIUDADES DE ESPAÑA </h1>

<xsl:apply-templates select="//nombre" />

<h3> <xsl:value-of select="." /> </h3>

</body>
</html>



La regla “de inicio”

 La regla <xsl:template match=“/”> se ejecuta cuando se encuentra el

elemento raíz del documento XML

 Dentro de esta regla, podemos incluir llamadas a otras reglas definidas

en la hoja de estilo, mediante el elemento:
<xsl:apply-templates select=”…” />

 El atributo select tomará como valor el nombre del elemento asociado

a la regla que queremos “disparar”

 Esto nos ofrece un control real sobre el “orden” de ejecución de las

reglas



La regla “de inicio”

 El resultado de la transformación es el siguiente:

<title>Ejemplo XSLT</title>


<html>
<head>

</head>
<body>
<h1> CIUDADES DE ESPAÑA </h1



</body>
</html>


<h3>Madrid</h3>
<h3>Málaga</h3>
<h3>Toledo</h3>



Ejemplos
simple.xml
<?xml version=“1.0” encoding="ISO-8859-1" ?>
<?xml-stylesheet type="text/xsl" href=“simple.xsl" ?>
<simple>
<nombre> Álvarez Martín Almudena </nombre>
<nombre> Aragon Batista Joaquin </nombre>
<nombre> Chavarri Satalaya Jordan </nombre>
<nombre> Cruz Florencio Victor </nombre>
<nombre> Del Toro del Toro Moisés </nombre>
<nombre> Díaz Redondo Raul </nombre>
</simple>


Simple.xsl

<title>Ejemplo XSLT simple</title>

<html>
<head>

</head>
<body>
<xsl:apply-templates />

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">



</xsl:template>
<xsl:template match="nombre">

</xsl:template>

</xsl:stylesheet>

<p> Nombre encontrado</p>

</body>
</html>



Actividades

1. Con Notepad++ escribir cada uno de los ejemplos anteriores y

hacer todas las pruebas que se os ocurran.

2. Con Notepad++, crear una primera hoja de estilo XSLT que, a

partir del documento XML tienda1.xml, extraiga en un documento
HTML los artículos de la tienda

3. Formatear la lista de artículos para que se presente como una lista no

ordenada (sin numerar), de HTML

4. Cambiar la hoja de estilo XSLT para que los artículos se presenten en

una tabla con una única columna

5. Cambiar la hoja de estilo para que los artículos se presenten en una
tabla con dos columnas. En la primera de ellas se escribirá un texto
fijo: “ARTICULOS DE MI TIENDA”

6. Aplicar esta última hoja de estilo al documentos XML

tiendecilla.xml



El elemento <xsl:value-of...> (I)

 En el elemento <xsl:value-of…> se puede indicar que se quiere

mostrar el valor del elemento que estamos procesando

 También podemos indicar que queremos mostrar el valor de un

elemento hijo, o descendiente, del elemento que se está procesando

 En el ejemplo anterior, podríamos utilizar xsl:value-of para mostrar en
el documento resultado de la transformación el artículo, la marca y el
modelo de cada producto.

 Esto es posible porque en el atributo select podemos utilizar una

“expresión XPATH”

 XPATH es un lenguaje que nos permite direccinarnos a las secciones

de un documento XML y obtener las partes de la información que
deseamos (nodo de contexto)



El elemento <xsl:value-of...> (II)

 Por ejemplo, para mostrar el valor del elemento articulo, que es un

hijo del elemento producto, podríamos utilizar la siguiente regla:

<xsl:template match="//producto">

</xsl:template>

<xsl:value-of select="./articulo" />



El valor del atributo select se puede leer de la siguiente forma: “dame

el valor del elemento articulo que es hijo del elemento que estoy
procesan
  • Links de descarga
http://lwp-l.com/pdf16406

Comentarios de: Unidad 4: XSLT y XPATH (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad