Ejercicio 507
Consideremos el siguiente documento XML:
<?xml version="1.0" encoding="UTF-8"?>
<ies>
<nombre>IES Gonzalo Nzareno</nombre>
<web>http://www.gonzalonzareno.org</web>
<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 id="SMR">
<nombre>Sistemas Microinformáticos y Redes</nombre>
<grado>Medio</grado>
<decretoTitulo año="2008" />
</ciclo>
</ciclos>
<modulos>
<modulo id="0228">
<nombre>Aplicaciones web</nombre>
<curso>2</curso>
<horasSemanales>4</horasSemanales>
<ciclo>SMR</ciclo>
</modulo>
<modulo id="0372">
<nombre>Gestión de bases de datos</nombre>
<curso>1</curso>
<horasSemanales>5</horasSemanales>
<ciclo>ASIR</ciclo>
</modulo>
<modulo id="0373">
<nombre>Lenguajes de marcas y sistemas de gestión de información</nombre>
<curso>1</curso>
<horasSemanales>3</horasSemanales>
<ciclo>ASIR</ciclo>
<ciclo>DAW</ciclo>
</modulo>
<modulo id="0376">
<nombre>Implantación de aplicaciones web</nombre>
<curso>2</curso>
<horasSemanales>5</horasSemanales>
<ciclo>ASIR</ciclo>
</modulo>
</modulos>
</ies>
Construye las expresiones XPath que permitan obtener los siguientes datos:
- Nombre de los módulos del ciclo Sistemas Microinformáticos y Redes (en la expresión final no deben aparecer las siglas SMR).
- Nombre completo de los ciclos que incluyen el módulo Lenguajes de marcas y sistemas de gestión de información.
- Nombre de los módulos de ciclos de Grado Superior.
- Nombre de los módulos de ciclos cuyo título se aprobó en 2008.
- Grado de los ciclos con módulos de primer curso.
Solución
- Nombre de los módulos del ciclo Sistemas Microinformáticos y Redes (en la expresión final no deben aparecer las siglas SMR).
/ies/modulos/modulo[ciclo=/ies/ciclos/ciclo[nombre="Sistemas Microinformáticos y Redes"]/@id]/nombre/text()
- Nombre completo de los ciclos que incluyen el módulo Lenguajes de marcas y sistemas de gestión de información.
/ies/ciclos/ciclo[@id=/ies/modulos/modulo[nombre="Lenguajes de marcas y sistemas de gestión de información"]/ciclo/text()]/nombre/text()
- Nombre de los módulos de ciclos de Grado Superior.
/ies/modulos/modulo[ciclo=/ies/ciclos/ciclo[grado="Superior"]/@id]/nombre/text()
- Nombre de los módulos de ciclos cuyo título se aprobó en 2008.
/ies/modulos/modulo[ciclo=/ies/ciclos/ciclo[decretoTitulo/@año="2008"]/@id]/nombre/text()
- Grado de los ciclos con módulos de primer curso
distinct-values(/ies/ciclos/ciclo[@id=/ies/modulos/modulo[curso="1"]/ciclo]/grado/text())