Bloque 1 de ejercicios XSLT
<?xml version="1.0" encoding="UTF-8"?> <ies nombre="IES Francisco de los Rios" web="http://www.iesfranciscodelosrios.es" > <ciclos> <ciclo id="ASIR"> <nombre>Administración de Sistemas Informáticos en Red</nombre> <grado>Superior</grado> <decretoTitulo año="2009" /> </ciclo> <ciclo id="DAW"> <nombre>Desarrollo de Aplicaciones Web</nombre> <grado>Superior</grado> <decretoTitulo año="2010" /> </ciclo> <ciclo> <nombre>Desarrollo de Aplicaciones Multiplataforma</nombre> <grado>Superior</grado> <decretoTitulo año="2010" /> </ciclo> <ciclo id="SMR"> <nombre>Sistemas Microinformáticos y Redes</nombre> <grado>Medio</grado> <decretoTitulo año="2008" /> </ciclo> </ciclos> </ies>
Dado el anterior documento XML, realiza las siguientes transformaciones XSLT de dos maneras distintas, primero utilizando una plantilla (template) para cada elemento y atributo que se necesite transformar, y segundo utilizando sólo la plantilla raíz y bucles (for-each) para cada elemento que se necesite transformar.
- Mostrar los nombres de los ciclos sin etiquetas.
- Mostrar en párrafos cada uno de los nombres de los ciclos.
- Mostrar en una lista sin numerar los nombres de los ciclos y entre paréntesis su grado.
- Mostrar en una lista numerada los nombres de los ciclos ordenados alfabéticamente de manera descendente y entre paréntesis su grado.
- Mostrar en una etiqueta H1 el nombre del instituto y luego en una tabla con su fila encabezado las siguientes columnas, nombre del ciclo y año. Si el año es mayor al 2009 la letra será de color verde, si es igual al 2009 de color azul y si es menor al 2009 de color rojo.
Bloque 2 de ejercicios XSLT
<?xml version="1.0" encoding="UTF-8"?> <bib url="http://www.uco.es/servicios/biblioteca/"> <libro año="1994"> <titulo>TCP/IP Illustrated</titulo> <autor> <apellido>Stevens</apellido> <nombre>W.</nombre> </autor> <editorial>Addison-Wesley</editorial> <precio>65.95</precio> </libro> <libro año="1992"> <titulo>Advan Programming for Unix environment</titulo> <autor> <apellido>Stevens</apellido> <nombre>W.</nombre> </autor> <editorial>Addison-Wesley</editorial> <precio>65.95</precio> </libro> <libro año="2000"> <titulo>Data on the Web</titulo> <autor> <apellido>Abiteboul</apellido> <nombre>Serge</nombre> </autor> <autor> <apellido>Buneman</apellido> <nombre>Peter</nombre> </autor> <autor> <apellido>Suciu</apellido> <nombre>Dan</nombre> </autor> <editorial>Morgan Kaufmann editorials</editorial> <precio>39.95</precio> </libro> <libro año="1999"> <titulo>Economics of Technology for Digital TV</titulo> <editor> <apellido>Gerbarg</apellido> <nombre>Darcy</nombre> <afiliacion>CITI</afiliacion> </editor> <editorial>Kluwer Academic editorials</editorial> <precio>129.95</precio> </libro> </bib>
Dado el anterior documento XML, realiza las siguientes transformaciones XSLT de dos maneras distintas, primero utilizando una plantilla (template) para cada elemento y atributo que se necesite transformar, y segundo utilizando sólo la plantilla raíz y bucles (for-each) para cada elemento que se necesite transformar.
- Mostrar una lista enumerada con todos los autores ordenados por apellidos.
- Mostrar una lista enumerada con todos los títulos de libros cuyo precio sea menor de 100.
- Mostrar una tabla con las siguientes columnas:
- Precio del libro, ordenando los resultados por este campo (Nota: se ordenan como si fueran cadenas y no números).
- Título del libro. Se mostrará el fondo de la celda en color rojo si el precio es mayor de 100.
- Año de publicación. Se mostrará el texto en cursiva.
- Mostrar una tabla con una primera fila de encabezado y con las siguientes columnas:
- Título del libro, en color rojo si el precio es mayor de 100, añadiéndole el texto "(Caro)" a continuación, ordenando los resultados por este campo.
- Autores del libro mostrando primero el nombre y luego el apellido. Si hay más de un autor se muestran todos en la misma celda. Si no hay autor se deja en blanco. Separar palabras con espacio en blanco.
- Editores del libro mostrando el nombre, el apellido y la afiliación. Si hay más de un editor se muestran todos en la misma celda. Si no hay editor se deja en blanco. Separar palabras con espacio en blanco.
Bloque 3 de ejercicios XSLT
<catalogo> <artistas> <artista id="uno"> <nombre>Carlos Jean</nombre> <nacionalidad>España</nacionalidad> </artista> <artista id="dos"> <nombre>Miguel Rios</nombre> <nacionalidad>España</nacionalidad> </artista> <artista id="tres"> <nombre>La Mala</nombre> <nacionalidad>España</nacionalidad> </artista> <artista id="cuatro"> <nombre>Etta James</nombre> <nacionalidad>USA</nacionalidad> </artista> </artistas> <discograficas> <discografica id="uno"> <nombre>Motown</nombre> <nacionalidad>USA</nacionalidad> </discografica> <discografica id="dos"> <nombre>Subterfuge</nombre> <nacionalidad>España</nacionalidad> </discografica> <discografica id="tres"> <nombre>Sony</nombre> <nacionalidad>USA</nacionalidad> </discografica> </discograficas> <cds> <cd autor="uno" disc="dos"> <titulo>Bad Jean</titulo> <precio>15</precio> <año>2000</año> </cd> <cd autor="dos" disc="tres"> <titulo>Rock and Rios</titulo> <precio>12</precio> <año>1982</año> </cd> <cd autor="tres" disc="tres"> <titulo>Malamarismo</titulo> <precio>10.90</precio> <año>2008</año> </cd> <cd autor="cuatro" disc="uno"> <titulo>At last</titulo> <precio>13</precio> <año>1979</año> </cd> <cd autor="cuatro" disc="uno"> <titulo>Chess soul sisters</titulo> <precio>16</precio> <año>1980</año> </cd> <cd autor="dos" disc="dos"> <titulo>Michael Rios</titulo> <precio>10</precio> <año>1973</año> </cd> <cd autor="uno" disc="dos"> <titulo>Party Stereo</titulo> <precio>13</precio> <año>2009</año> </cd> <cd autor="tres" disc="tres"> <titulo>Dirty Bailarina</titulo> <precio>13</precio> <año>1979</año> </cd> </cds> </catalogo>
Dado el anterior documento XML, realiza las siguientes transformaciones XSLT de dos maneras distintas, primero utilizando una plantilla (template) para cada elemento y atributo que se necesite transformar, y segundo utilizando sólo la plantilla raíz y bucles (for-each) para cada elemento que se necesite transformar.
- Mostrar una lista con los autores españoles.
- Mostrar una tabla con el nombre del disco en verde si el año es posterior al 2000, y en rojo si el año es anterior al 2000.
Soluciones a algunos de los ejercicios.
Ejercicios prácticos de XSLT escrito por Rafa Morales está protegido por una licencia Creative Commons Atribución-NoComercial-SinDerivadas 4.0 Internacional