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
