Inicio Tarea: Introducción a XPath
Artículo
Cancelar

Tarea: Introducción a XPath

Entrega y presentación

La entrega será en formato Markdown. Leer Entrega y presentación de tareas.

Si quieres saber más sobre Markdown, puedes leer este artículo introductorio.

Puedes descargar el fichero mruizg_t11_inicio.md como plantilla de inicio. ¡Recuerda cambiarle el nombre!

Esta tarea será utilizada para generar un PDF con XSL-FO.

Calificación y duración

La tarea se calificará como apto o no apto.

Duración

Actividades

Realiza las siguientes actividades.

Para hacer estos ejercicios se recomienda utilizar la página Code Beautify - XPath Tester. Otra opción es XPather que aunque no soporta algunas consultas es más visual y mejor a la hora de empezar a usar XPath.

Actividad 1

Dado el siguiente documento XML, escriba las expresiones XPath que devuelvan la respuesta deseada.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?xml version="1.0" encoding="UTF-8"?>
<ies>
  <nombre>Campus Digital</nombre>
  <web>https://campusdigitalfp.com/</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="DAM">
      <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>

Actividad 1.1

Nombre del instituto.

Salida esperada:

1
<nombre>Campus Digital</nombre>

Actividad 1.2

Página web del Instituto.

Salida esperada:

1
https://campusdigitalfp.com/

Actividad 1.3

Nombre de los Ciclos Formativos.

Salida esperada:

1
2
3
Administración de Sistemas Informáticos en Red
Desarrollo de Aplicaciones Multiplataforma
Sistemas Microinformáticos y Redes

Actividad 1.4

Siglas por las que se conocen los Ciclos Formativos.

Salida esperada:

1
2
3
id="ASIR"
id="DAM"
id="SMR"

Actividad 1.5

Años en los que se publicaron los decretos de título de los Ciclos Formativos.

Salida esperada:

1
2
3
año="2009"
año="2010"
año="2008"

Actividad 1.6

Ciclos Formativos de Grado Medio (se trata de obtener el elemento <ciclo> completo).

Salida esperada:

Resuelva este ejercicio de dos formas distintas, en un único paso de búsqueda y en dos pasos de búsqueda.

1
2
3
4
5
<ciclo id="SMR">
  <nombre>Sistemas Microinformáticos y Redes</nombre>
  <grado>Medio</grado>
  <decretoTitulo año="2008"/>
</ciclo>

Actividad 1.7

Nombre de los Ciclos Formativos de Grado Superior.

Salida esperada:

Resuelva este ejercicio de dos formas distintas, en un único paso de búsqueda y en dos pasos de búsqueda.

1
2
<nombre>Desarrollo de Aplicaciones Multiplataforma</nombre>
<nombre>Administración de Sistemas Informáticos en Red</nombre>

Actividad 1.8

Nombre de los Ciclos Formativos anteriores a 2010.

Salida esperada:

Resuelva este ejercicio de dos formas distintas, en un único paso de búsqueda y en dos pasos de búsqueda.

1
2
Administración de Sistemas Informáticos en Red
Sistemas Microinformáticos y Redes

Actividad 1.9

Nombre de los Ciclos Formativos de 2008 o 2010.

Salida esperada:

Resuelva este ejercicio de dos formas distintas, en un único paso de búsqueda y en dos pasos de búsqueda.

1
2
Desarrollo de Aplicaciones Multiplataforma
Sistemas Microinformáticos y Redes

Actividad 1.9

Invéntate tu propia consulta.

Actividad 2

Dado el siguiente documento XML, escriba las expresiones XPath que devuelvan la respuesta deseada.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?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="0378">
      <nombre>Seguridad y Alta Disponibilidad</nombre>
      <curso>2</curso>
      <horasSemanales>2</horasSemanales>
      <ciclo>ASIR</ciclo>
    </modulo>
  </modulos>
</ies>

Actividad 2.1

Nombre de los módulos que se imparten en el Instituto.

Salida esperada:

1
2
3
4
Aplicaciones web
Gestión de bases de datos
Lenguajes de marcas y sistemas de gestión de información
Seguridad y Alta Disponibilidad

Actividad 2.2

Nombre de los módulos del ciclo ASIR.

Salida esperada:

1
2
3
Gestión de bases de datos
Lenguajes de marcas y sistemas de gestión de información
Seguridad y Alta Disponibilidad

Actividad 2.3

Nombre de los módulos que se imparten en el segundo curso de cualquier ciclo.

Salida esperada:

1
2
Aplicaciones web
Seguridad y Alta Disponibilidad

Actividad 2.4

Nombre de los módulos de menos de 5 horas semanales.

Salida esperada:

1
2
3
Aplicaciones web
Lenguajes de marcas y sistemas de gestión de información
Seguridad y Alta Disponibilidad

Actividad 2.5

Nombre de los módulos que se imparten en el primer curso de ASIR.

Salida esperada:

1
2
Gestión de bases de datos
Lenguajes de marcas y sistemas de gestión de información

Actividad 2.6

Horas semanales de los módulos de más de 3 horas semanales.

Salida esperada:

1
2
4
5

Actividad 2.7

Invéntate tu propia consulta.

Actividad 3

Dado el siguiente documento XML, escriba las expresiones XPath que devuelvan la respuesta deseada.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?xml version="1.0" encoding="UTF-8"?>
<ies>
  <nombre>Campus Digital</nombre>
  <web>https://campusdigitalfp.com/</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="0378">
      <nombre>Seguridad y Alta Disponibilidad</nombre>
      <curso>2</curso>
      <horasSemanales>2</horasSemanales>
      <ciclo>ASIR</ciclo>
    </modulo>
  </modulos>
</ies>

Actividad 3.1

Nombre de los módulos del ciclo “Sistemas Microinformáticos y Redes” (en la expresión final no deben aparecer las siglas SMR).

Salida esperada:

1
Aplicaciones web

Actividad 3.2

Nombre de los ciclos que incluyen el módulo “Lenguajes de marcas y sistemas de gestión de información”.

Salida esperada:

1
2
Administración de Sistemas Informáticos en Red
Desarrollo de Aplicaciones Web

Actividad 3.3

Nombre de los módulos de ciclos de Grado Superior.

Salida esperada:

1
2
3
Gestión de bases de datos
Lenguajes de marcas y sistemas de gestión de información
Seguridad y Alta Disponibilidad

Actividad 3.4

Nombre de los módulos de ciclos cuyo título se aprobó en 2008.

Salida esperada:

1
Aplicaciones web

Actividad 3.5

Grado de los ciclos con módulos de primer curso.

Salida esperada:

1
2
Superior
Superior

Actividad 3.6

Invéntate tu propia consulta.

(Voluntaria) Actividad 4

Dado el siguiente fichero XML:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
<?xml version="1.0" encoding="UTF-8"?>
<universidad>

    <nombre>Universidad de Zaragoza</nombre>
    <pais>España</pais>

    <!-- GRADOS -->

    <grados>

        <grado id="g01">
            <nombre>Grado en Ingeniería Informática</nombre>
            <plan>2003</plan>
            <creditos>250</creditos>
            <centro>Escuela de Informática</centro>
        </grado>

        <grado id="g02">
            <nombre>Grado en Administración y Dirección de Empresas</nombre>
            <plan>2000</plan>
            <creditos>275</creditos>
            <centro>Facultad de Ciencias Sociales</centro>
        </grado>

        <grado id="g03">
            <nombre>Grado en Relaciones Laborales</nombre>
            <plan>2000</plan>
            <creditos>280</creditos>
            <centro>Facultad de Ciencias Sociales</centro>
            <subdirector>Alfonso Martín Luque</subdirector>
        </grado>

        <grado id="g04">
            <nombre>Grado en Quimica</nombre>
            <plan>2003</plan>
            <creditos>175</creditos>
            <centro>Facultad de Ciencias Experimentales</centro>
        </grado>

        <grado id="g05">
            <nombre>Grado en Biotecnología</nombre>
            <plan>2000</plan>
            <creditos>175</creditos>
            <centro>Facultad de Ciencias</centro>
        </grado>

        <grado id="g06">
            <nombre>Grado en Humanidades</nombre>
            <plan>1980</plan>
            <creditos>475</creditos>
            <centro>Facultad de Humanidades</centro>
        </grado>

    </grados>

    <!-- ASIGNATURAS -->

    <asignaturas>

        <asignatura id="a01" titulacion="g01">
            <nombre>Ofimática</nombre>
            <creditosTeoricos>3</creditosTeoricos>
            <creditosPracticos>1.5</creditosPracticos>
            <trimestre>1</trimestre>
        </asignatura>

        <asignatura id="a02" titulacion="g01">
            <nombre>Ingeniería del Software</nombre>
            <creditosTeoricos>6</creditosTeoricos>
            <creditosPracticos>1.5</creditosPracticos>
            <trimestre>2</trimestre>
        </asignatura>

        <asignatura id="a03" titulacion="g02">
            <nombre>Administración de Empresas</nombre>
            <creditosTeoricos>4</creditosTeoricos>
            <creditosPracticos>1.5</creditosPracticos>
            <trimestre>1</trimestre>
        </asignatura>

        <asignatura id="a04" titulacion="g02">
            <nombre>Derecho Internacional</nombre>
            <creditosTeoricos>4</creditosTeoricos>
            <creditosPracticos>5</creditosPracticos>
            <trimestre>1</trimestre>
        </asignatura>

        <asignatura id="a05" titulacion="g04">
            <nombre>Pedagogía</nombre>
            <creditosTeoricos>4</creditosTeoricos>
            <creditosPracticos>1.5</creditosPracticos>
            <trimestre>2</trimestre>
        </asignatura>

        <asignatura id="a06" titulacion="g03">
            <nombre>Didáctica</nombre>
            <creditosTeoricos>4</creditosTeoricos>
            <creditosPracticos>3</creditosPracticos>
            <trimestre>2</trimestre>
        </asignatura>

        <asignatura id="a07" titulacion="g04">
            <nombre>Tecnología de los Alimentos</nombre>
            <creditosTeoricos>1.5</creditosTeoricos>
            <creditosPracticos>7.5</creditosPracticos>
            <trimestre>2</trimestre>
        </asignatura>

        <asignatura id="a08" titulacion="g01">
            <nombre>Bases de Datos</nombre>
            <creditosTeoricos>4.5</creditosTeoricos>
            <creditosPracticos>5.5</creditosPracticos>
            <trimestre>1</trimestre>
        </asignatura>

        <asignatura id="a09" titulacion="g06">
            <nombre>Historia del Pensamiento</nombre>
            <creditosTeoricos>6</creditosTeoricos>
            <creditosPracticos>0</creditosPracticos>
            <trimestre>2</trimestre>
        </asignatura>

    </asignaturas>

    <!-- ALUMNOS -->

    <alumnos>

        <alumno id="e01">
            <apellido1>Rivas</apellido1>
            <apellido2>Santos</apellido2>
            <nombre>Víctor Manuel</nombre>
            <sexo>Hombre</sexo>
            <estudios>
                <grado codigo="g01" />
                <asignaturas>
                    <asignatura codigo="a01" />
                    <asignatura codigo="a03" />
                    <asignatura codigo="a05" />
                    <asignatura codigo="a09" />
                </asignaturas>
            </estudios>
        </alumno>

        <alumno id="e02">
            <apellido1>Pérez</apellido1>
            <apellido2>García</apellido2>
            <nombre>Luisa</nombre>
            <sexo>Mujer</sexo>
            <estudios>
                <grado codigo="g02" />
                <asignaturas>
                    <asignatura codigo="a02" />
                    <asignatura codigo="a01" />
                </asignaturas>
                <proyecto>Web de IBM.com</proyecto>
            </estudios>

        </alumno>

        <alumno id="e03" beca="si">
            <apellido1>Pérez</apellido1>
            <apellido2>Romero</apellido2>
            <nombre>Fernando</nombre>
            <sexo>Hombre</sexo>
            <estudios>
                <grado codigo="g02" />
                <asignaturas>
                    <asignatura codigo="a02" />
                    <asignatura codigo="a01" />
                    <asignatura codigo="a04" />
                    <asignatura codigo="a09" />
                </asignaturas>
            </estudios>
        </alumno>

        <alumno id="e04">
            <apellido1>Avalón</apellido1>
            <apellido2>Jiménez</apellido2>
            <nombre>María</nombre>
            <sexo>Mujer</sexo>
            <estudios>
                <grado codigo="g01" />
                <asignaturas>
                    <asignatura codigo="a02" />
                    <asignatura codigo="a01" />
                    <asignatura codigo="a07" />
                </asignaturas>
                <proyecto>Estudio de Salinidad del Pantano Iris</proyecto>
            </estudios>
        </alumno>

    </alumnos>

</universidad>

Obtén la siguiente información.

Actividad 4.01

Nombre de la Universidad.

Actividad 4.02

País de la Universidad.

Actividad 4.03

Nombres de las grados.

Actividad 4.04

Años de plan de estudio de las grados.

Actividad 4.05

Nombres de todos los alumnos.

Actividad 4.06

Identificadores de todas las grados.

Actividad 4.07

Datos de la grado cuyo id es g01.

Actividad 4.08

Centro en que se estudia de la grado cuyo id es g02.

Actividad 4.09

Nombre de las grados que tengan subdirector.

Actividad 4.10

Nombre de los alumnos que estén haciendo proyecto.

Actividad 4.11

Códigos de las grados en las que hay algún alumno matriculado.

Actividad 4.12

Apellidos y Nombre de los alumnos con beca.

Actividad 4.13

Nombre de las asignaturas del grado g04.

Actividad 4.14

Nombre de las asignaturas de segundo trimestre.

Actividad 4.15

Nombre de las asignaturas que no tienen 4 créditos teóricos.

Actividad 4.16

Código de la grado que estudia el último alumno.

Actividad 4.17

Código de las asignaturas que estudian mujeres.

Actividad 4.18

Nombre de los alumnos que matriculados en la asignatura a02.

Actividad 4.19

Códigos de las grados que estudian los alumnos matriculados en alguna asignatura.

Actividad 4.20

Apellidos de todos los hombres.

Actividad 4.21

Nombre de la grado que estudia Víctor Manuel.

Actividad 4.22

Nombre de las asignaturas que estudia Luisa.

Actividad 4.23

Primer apellido de los alumnos matriculados en Ingeniería del Software.

Actividad 4.24

Nombre de las grados que estudian los alumnos matriculados en la asignatura Tecnología de los Alimentos.

Actividad 4.25

Nombre de los alumnos matriculados en grados que no tienen subdirector.

Actividad 4.26

Nombre de las alumnos matriculados en asignaturas con 0 créditos prácticos y que estudien la grado de I.T. Informática .

Actividad 4.27

Nombre de los alumnos que estudian grados cuyos planes son anteriores a 2002.

Actividad 4.28

Invéntate tu propia consulta.

Soluciones
  1. /universidad/nombre
  2. /universidad/pais
  3. //grado/nombre
  4. //grado/plan
  5. //alumno/nombre
  6. //grado/@id
  7. //grado[@id='g01']
  8. //grado[@id='g02']/centro
  9. //subdirector/../nombre
  10. //alumno//proyecto/../../nombre
  11. //alumno//grado/@codigo
  12. //alumno[@beca]/nombre | //alumno[@beca]/apellido1 | //alumno[@beca]/apellido2
  13. //asignatura[@titulacion='g04']/nombre
  14. //asignatura[trimestre=2]/nombre
  15. //asignatura[not(creditosTeoricos=4)]/nombre
  16. //alumno[last()]//grado/@codigo
  17. //alumno[sexo='Mujer']//asignatura/@codigo
  18. //alumno[.//asignatura/@codigo='a02']/nombre
  19. //alumno//asignatura/../../grado/@codigo
  20. //alumno[sexo='Hombre']/apellido1 | //alumno[sexo='Hombre']/apellido2
  21. //grado[@id=//alumno[nombre='Víctor Manuel']//grado/@codigo]/nombre
  22. //asignatura[@id=//alumno[nombre='Luisa']//asignatura/@codigo]/nombre
  23. //alumno[.//asignatura/@codigo=//asignatura[nombre='Ingeniería del Software']/@id]/apellido1
  24. //grado[@id=//alumno[.//asignatura[@codigo=//asignatura[nombre='Tecnología de los Alimentos']/@id]]//grado/@codigo]/nombre
  25. //alumno[not (.//grado/@codigo=//grado[subdirector]/@codigo)]/nombre
  26. //alumno[.//asignatura/@codigo=//asignatura[creditosPracticos=0]/@id][.//grado/@codigo=//grado[nombre='I.T. Informática']/@id]/nombre
  27. //alumno[.//grado/@codigo=//grado[not(plan>=2002)]/@id]/nombre

Bibliografía

Este artículo está licenciado bajo CC BY 4.0 por el autor.

Guía oposiciones SAI 2024

Tarea: Introducción a XQuery