Ejercicio de introducción a xpath
Para hacer estos ejercicios puedes utilizar la página: Code Beauty - XPath Tester
Ejercicio 1
Dado el siguiente documento XML, escriba las expresiones XPath que devuelvan la respuesta deseada:
<?xml version="1.0" encoding="UTF-8"?>
<ies>
<nombre>IES Gonzalo Nazareno</nombre>
<web>http://www.gonzalonazareno.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>
</ies>
-
Nombre del instituto:
<nombre>IES Gonzalo Nazareno</nombre>
-
Página web del Instituto:
http://www.gonzalonazareno.org
-
Nombre de los Ciclos Formativos:
Administración de Sistemas Informáticos en Red Desarrollo de Aplicaciones Web Sistemas Microinformáticos y Redes
-
Siglas por las que se conocen los Ciclos Formativos:
id="ASIR" id="DAW" id="SMR"
-
Años en los que se publicaron los decretos de título de los Ciclos Formativos:
año="2009" año="2010" año="2008"
-
Ciclos Formativos de Grado Medio (se trata de obtener el elemento
completo): <ciclo id="SMR"> <nombre>Sistemas Microinformáticos y Redes</nombre> <grado>Medio</grado> <decretoTitulo año="2008"/> </ciclo>
-
Nombre de los Ciclos Formativos de Grado Superior:
<nombre>Administración de Sistemas Informáticos en Red</nombre> <nombre>Desarrollo de Aplicaciones Web</nombre>
-
Nombre de los Ciclos Formativos anteriores a 2010:
Administración de Sistemas Informáticos en Red Sistemas Microinformáticos y Redes
-
Nombre de los Ciclos Formativos de 2008 o 2010:
Desarrollo de Aplicaciones Web Sistemas Microinformáticos y Redes
Ejercicio 2
Dado el siguiente documento XML, escriba las expresiones XPath que devuelvan la respuesta deseada:
<?xml version="1.0" encoding="UTF-8"?>
<ies>
<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>
-
Nombre de los módulos que se imparten en el Instituto:
Aplicaciones web Gestión de bases de datos Lenguajes de marcas y sistemas de gestión de información Implantación de aplicaciones web
-
Nombre de los módulos del ciclo ASIR:
Gestión de bases de datos Lenguajes de marcas y sistemas de gestión de información Implantación de aplicaciones web
-
Nombre de los módulos que se imparten en el segundo curso de cualquier ciclo:
Aplicaciones web Implantación de aplicaciones web
-
Nombre de los módulos de menos de 5 horas semanales:
Aplicaciones web Lenguajes de marcas y sistemas de gestión de información
-
Nombre de los módulos que se imparten en el primer curso de ASIR:
Gestión de bases de datos Lenguajes de marcas y sistemas de gestión de información
-
Horas semanales de los módulos de más de 3 horas semanales:
4 5 5
Ejercicio 3
Dado el siguiente documento XML, escriba las expresiones XPath que devuelvan la respuesta deseada:
<?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>
-
Nombre de los módulos del ciclo “Sistemas Microinformáticos y Redes” (en la expresión final no deben aparecer las siglas SMR):
Aplicaciones web
-
Nombre de los ciclos que incluyen el módulo “Lenguajes de marcas y sistemas de gestión de información”:
Administración de Sistemas Informáticos en Red Desarrollo de Aplicaciones Web
-
Nombre de los módulos de ciclos de Grado Superior:
Gestión de bases de datos Lenguajes de marcas y sistemas de gestión de información Implantación de aplicaciones web
-
Nombre de los módulos de ciclos cuyo título se aprobó en 2008:
Aplicaciones web
-
Grado de los ciclos con módulos de primer curso:
Superior Superior
Ejercicio 4
Vamos a trabajar con el fichero universidad.xml
. Obten la siguiente información:
- Nombre de la Universidad.
- Pais de la Universidad.
- Nombres de las Carreras.
- Años de plan de estudio de las carreras.
- Nombres de todos los alumnos.
- Identificadores de todas las carreras.
- Datos de la carrera cuyo id es c01.
- Centro en que se estudia de la carrera cuyo id es c02.
- Nombre de las carreras que tengan subdirector.
- Nombre de los alumnos que estén haciendo proyecto.
- Códigos de las carreras en las que hay algún alumno matriculado.
- Apellidos y Nombre de los alumnos con beca.
- Nombre de las asignaturas de la titulación c04.
- Nombre de las asignaturas de segundo trimestre.
- Nombre de las asignaturas que no tienen 4 créditos teóricos.
- Código de la carrera que estudia el último alumno.
- Código de las asignaturas que estudian mujeres.
- Nombre de los alumnos que matriculados en la asignatura a02.
- Códigos de las carreras que estudian los alumnos matriculados en alguna asignatura.
- Apellidos de todos los hombres.
- Nombre de la carrera que estudia Víctor Manuel.
- Nombre de las asignaturas que estudia Luisa.
- Primer apellido de los alumnos matriculados en Ingeniería del Software.
- Nombre de las carreras que estudian los alumnos matriculados en la asignatura Tecnología de los Alimentos.
- Nombre de los alumnos matriculados en carreras que no tienen subdirector.
- Nombre de las alumnos matriculados en asignaturas con 0 créditos prácticos y que estudien la carrera de I.T. Informática .
- Nombre de los alumnos que estudian carreras cuyos planes son anteriores a 2002.
Soluciones
/universidad/nombre
/universidad/pais
//carrera/nombre
//carrera/plan
//alumno/nombre
//carrera/@id
//carrera[@id='c01']
//carrera[@id='c02']/centro
//subdirector/../nombre
//alumno//proyecto/../../nombre
//alumno//carrera/@codigo
//alumno[@beca]/nombre | //alumno[@beca]/apellido1 | //alumno[@beca]/apellido2
//asignatura[@titulacion='c04']/nombre
//asignatura[trimestre=2]/nombre
//asignatura[not(creditos_teoricos=4)]/nombre
//alumno[last()]//carrera/@codigo
//alumno[sexo='Mujer']//asignatura/@codigo
//alumno[.//asignatura/@codigo='a02']/nombre
//alumno//asignatura/../../carrera/@codigo
//alumno[sexo='Hombre']/apellido1 | //alumno[sexo='Hombre']/apellido2
//carrera[@id=//alumno[nombre='Víctor Manuel']//carrera/@codigo]/nombre
//asignatura[@id=//alumno[nombre='Luisa']//asignatura/@codigo]/nombre
//alumno[.//asignatura/@codigo=//asignatura[nombre='Ingeniería del Software']/@id]/apellido1
//carrera[@id=//alumno[.//asignatura[@codigo=//asignatura[nombre='Tecnología de los Alimentos']/@id]]//carrera/@codigo]/nombre
//alumno[not (.//carrera/@codigo=//carrera[subdirector]/@codigo)]/nombre
//alumno[.//asignatura/@codigo=//asignatura[creditos_practicos=0]/@id][.//carrera/@codigo=//carrera[nombre='I.T. Informática']/@id]/nombre
//alumno[.//carrera/@codigo=//carrera[not(plan>=2002)]/@id]/nombre