(versión definitiva lista para pegar en tu WordPress)
1 ▸ Nombre de las asignaturas que no tienen 4 créditos teóricos
//asignatura[creditos_teoricos != 4]/nombre/text()
La condición != 4
filtra tanto a las que tienen menos como a las que tienen más de 4 créditos.
2 ▸ Nombre de los alumnos con beca
//alumno[@beca]/nombre/text()
El simple hecho de que exista el atributo @beca
identifica al alumnado becado.
3 ▸ Códigos de las asignaturas que estudian mujeres
//alumno[sexo = 'Mujer']/estudios/asignaturas/asignatura/@codigo
Versión 2.0 (sin repeticiones):
distinct-values( //alumno[sexo='Mujer']/estudios/asignaturas/asignatura/@codigo )
4 ▸ Nombre del alumnado matriculado en la asignatura a02
//alumno[estudios/asignaturas/asignatura/@codigo = 'a02']/nombre/text()
Se comprueba si alguna asignatura cursada por el alumno tiene @codigo = 'a02'
.
5 ▸ Nombres de los centros donde estudian mujeres
//carrera[@id = //alumno[sexo = 'Mujer']/estudios/carrera/@codigo]/centro/text()
- Seleccionamos las alumnas (
sexo = 'Mujer'
). - Tomamos el atributo
@codigo
de la carrera que cursan. - Buscamos en la lista global de
<carrera>
aquella cuyo@id
coincide y devolvemos su<centro>
.
Versión 2.0 (sin repeticiones):
distinct-values( //carrera[@id = //alumno[sexo='Mujer']/estudios/carrera/@codigo]/centro/text() )
Cómo usarlas
- Carga el XML en tu herramienta habitual (eXist-db, BaseX, Oxygen, etc.).
- Elige el modo XPath 1.0 o 2.0.
- Copia-pega la consulta y ejecuta. Si tu motor 1.0 te devuelve nodos en lugar de texto, añade
/string()
al final.
¡Listo! Con estas expresiones obtendrás exactamente los textos que pide el ejercicio.