Ejercicios Tema 2 Marcas

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 65

Ejercicios para entregar

Página 1

Nombre del propietario de la agenda.

//agenda/propietario/identificadores/nombre

Teléfono de casa del propietario.

//agenda/propietario/telefonos/casa

Nombres y apellidos de los contactos de la agenda.

//contactos/persona/identificadores/nombre | //contactos/persona/identificadores/apellidos

Nombre e identificador de cada contacto.

//contactos/persona/identificadores/nombre | //contactos/persona/@id

Datos del contacto con identificador "p02".

//contactos/persona[@id="p02"]/*/*

Identificadores de los contactos que tienen móvil.


//contactos/persona/telefonos/movil/../../@id

https://ikastaroak.birt.eus/edu/argitalpen/backupa/20200331/1920k/es/ASIRDAMDAW/LMSGI
/LMSGI05/es_ASIRDAMDAW_LMSGI05_Contenidos/website_16_ejercicio_resuelto.html

Página 2

Ejercicios prácticos de XPath

Ejercicios path1

Mostrar el nombre del instituto.

/ies/nombre

Mostrar la página web del instituto sin etiquetas.

/ies/web/text()

Mostrar el nombre de los ciclos formativos sin etiquetas.

/ies/ciclos/ciclo/nombre/text()

Mostrar las siglas por las que se conocen los ciclos formativos.

/ies/ciclos/ciclo/@id

Mostrar los años en los que se publicaron los decretos de los ciclos formativos.

/ies/ciclos/ciclo/decretoTitulo/@año

Mostrar toda la información de los ciclos formativos de grado medio.

/ies/ciclos/ciclo[grado="Medio"]

Mostrar los nombres de los ciclos formativos de grado superior.

/ies/ciclos/ciclo[grado="Superior"]/nombre

Mostrar los nombres de los ciclos formativos anteriores a 2010 sin etiquetas.

/ies/ciclos/ciclo[decretoTitulo/@año<2010]/nombre/text()

Mostrar los nombres de los ciclos formativos de 2008 o de 2010.

/ies/ciclos/ciclo[decretoTitulo/@año=2008 or decretoTitulo/@año=2010]/nombre

Ejercicios path2

Mostrar el nombre sin etiquetas de los módulos que se imparten en el instituto.

/ies/modulos/modulo/nombre/text()

Mostrar el nombre de los módulos que se imparten en ciclo formativo ASIR.


/ies/modulos/modulo[ciclo="ASIR"]/nombre

Mostrar el nombre de los módulos que se imparten en segundo curso de cualquier ciclo
formativo.

/ies/modulos/modulo[curso="2"]/nombre

Mostrar el nombre de los módulos que tengan menos de 5 horas semanales.

/ies/modulos/modulo[horasSemanales<5]/nombre

Mostrar el nombre de los módulos que se imparten en el primer curso del ciclo formativo
ASIR.

/ies/modulos/modulo[curso=1 and ciclo="ASIR"]/nombre

Mostrar las horas semanales sin etiquetas de los módulos que se imparten en más de 3 horas
semanales

/ies/modulos/modulo[horasSemanales>3]/horasSemanales/text()

Ejercicios path 3

Mostrar los nombres de los módulos del ciclo de "Sistemas Microinformáticos y Redes".

/ies/ciclos/ciclo[nombre="Sistemas Microinformáticos y Redes"]/@id

Mostrar los nombres de los ciclos formativos que incluyen el módulo "Lenguajes de marcas y
sistemas de gestión de información".

/ies/modulos/modulo[nombre="Lenguajes de marcas y sistemas de gestión de


información"]/ciclo/text()

Mostrar los nombres de los módulos de ciclos de Grado Superior.

/ies/ciclos/ciclo[grado="Superior"]/@id

Mostrar los nombres de los módulos de los ciclos formativos cuyo título se aprobó en 2008.

/ies/ciclos/ciclo[decretoTitulo/@año=2008]/@id

Mostrar los grados de los ciclos formativos con módulos de primer curso.

/ies/modulos/modulo[curso=1]/ciclo

https://www.ticarte.com/contenido/ejercicios-practicos-de-xpath
Página 3

Ejercicio 1

Nombre del Instituto

/ies/nombre

Página web del Instituto

//web/text()

Nombre de los Ciclos Formativos

//ciclo/nombre/text()

Siglas por las que se conocen los Ciclos Formativos

//@id

//ciclo/@*

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

//@año

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

//ciclo[grado="Medio"]

Nombre de los Ciclos Formativos de Grado Superior

//ciclo[grado="Superior"]/nombre

Nombre de los Ciclos Formativos anteriores a 2010

//nombre[../decretoTitulo/@año<2010]/text()

Nombre de los Ciclos Formativos de 2008 o 2010

//nombre[../decretoTitulo/@año=2008 or ../decretoTitulo/@año=2010]/text()

Ejercicio 2

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

//nombre/text()

Nombre de los módulos del ciclo ASIR:

//modulo[ciclo="ASIR"]/nombre/text()

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


//modulo[curso=2]/nombre/text()

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

//modulo[horasSemanales<5]/nombre/text()

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

//modulo[ciclo="ASIR" and curso=1]/nombre/text()

Horas semanales de los módulos de más de 3 horas semanales (4, 5, 5).

//modulo[horasSemanales>3]/horasSemanales/text()

Ejercicio 3

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

//ciclo[nombre="Sistemas Microinformáticos y Redes"]/@id

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

//modulo[nombre="Lenguajes de marcas y sistemas de gestión de información"]/ciclo/text()

Nombre de los módulos de ciclos de Grado Superior

//modulo[ciclo="ASIR"]/nombre/text()

//modulo[ciclo="DAW"]/nombre/text()

//modulo[ciclo="LMSGI"]/nombre/text()

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

//decretoTitulo[@año=2008]/../@id

Grado de los ciclos con módulos de primer curso

//modulo[curso=1]/ciclo

https://www.mclibre.org/consultar/xml/ejercicios/xpath.html
1. Muestra el nombre de todos los bailes.
for $baile in doc("C:/Users/angel1/Documents/Ficheros XML para probar
XPath y Xquery-20221114/bailes.xml")//bailes/baile/nombre/text()
return $baile
2. Muestra el nombre y precio de todos los bailes.
for $baile in doc("C:/Users/angel1/Documents/Ficheros XML para probar
XPath y Xquery-20221114/bailes.xml")//bailes/baile
return
{data($baile/nombre/text())}
{data($baile/precio/text())}
3. Muestra el nombre y precio de todos los bailes donde su precio
es mayor que 40.

for $baile in doc("C:/Users/angel1/Documents/Ficheros XML para probar


XPath y Xquery-20221114/bailes.xml")//bailes/baile
where $baile/number(precio) > 40
return
{data($baile/nombre/text())}
{data($baile/precio/text())}
4. Mostrar los bailes ordenados por nombre.
for $baile in doc("C:/Users/angel1/Documents/Ficheros XML para probar
XPath y Xquery-20221114/bailes.xml ")//bailes/baile/nombre/text()
order by $baile
return $baile
5. Mostrar los nombres de los bailes que contienen una a.
for $baile in doc("bailes.xml")//bailes/baile/nombre/text()
where contains($baile, "a")
return $baile

6. Mostrar el nombre de los bailes donde el apellido del profesor sea


Lozano.
for $baile in doc("bailes.xml")//bailes/baile
where contains($baile/profesor, "Lozano")
return $baile/nombre/text()
7. Mostrar todos los bailes, excepto el 3 y 5.
for $baile in doc("bailes.xml")//bailes/baile
where $baile/@id != 3 and $baile/@id != 5
return $baile
8. Mostrar profesores que den clases de bailes por una cuota
mensual.
for $baile in doc("bailes.xml")//bailes/baile

where $baile/precio/@cuota = "mensual"

return $baile/profesor/text()

9. Mostrar el nombre de los bailes de la sala 1, que se pague con


euros y el precio sea menor a 35.

for $baile in doc("bailes.xml")//bailes/baile


where $baile/sala/text() = "1" and $baile/precio/@moneda =
"euro" and $baile/number(precio) < 35
return $baile/nombre/text()

1. Obtener los nombres de los alumnos que tienen alguna nota”. Después
filtra por aprobados
for $alumno in doc("C:/Users/angel1/Documents/Ficheros XML para
probar XPath y Xquery-20221114/clase.xml")//alumnos/alumno
for $alumno in doc("C:/Users/angel1/Documents/Ficheros XML para
probar XPath y Xquery-20221114/clase.xml")//notas/nota
where $alumno/@cod = $a/@alum and
$alumno/clase/notas/nota/number(@calificacion) >= 5
return <alumno>{ data($a/apenom) }</alumno>
2. Obtener las calificaciones del alumno de código "n43483437" en cada
módulo.
for $alumno in doc("C:/Users/angel1/Documents/Ficheros XML para
probar XPath y Xquery-20221114/clase.xml")//notas/nota
for $alumno in doc("C:/Users/angel1/Documents/Ficheros XML para
probar XPath y
Xquery-20221114/clase.xml")//asignaturas/asignatura
where $a/@alum = "n43483437" and $b/@cod = $a/@asig
return <alumno>{ data($b/@nombre),"---",data($a/@calificacion)
}</alumno>
3. Obtener el nombre y el teléfono de cada alumno ordenado por
apellidos de forma descendiente.

for $a in doc("C:/Users/angel1/Documents/Ficheros XML para


probar XPath y Xquery-20221114/clase.xml")//alumnos/alumno

let $b := index-of($a/apenom,',')

order by $a/apenom descending

return <alumno>{
data(substring-after($a/apenom,',')),"---",data($a/telef)

}</alumno>

4. ¿Cuántos módulos hay?

let $a := doc("C:/Users/angel1/Documents/Ficheros XML para


probar XPath y
Xquery-20221114/clase.xml")//asignaturas/asignatura

return <alumno>{ "Existen: ",data(count($a)),"módulos


distintos" }</alumno>

5. Obtener el nombre de los alumnos matriculados en LMSGI y sus


notas, ordenado por notas descendente.

for $a in doc("C:/Users/angel1/Documents/Ficheros XML para


probar XPath y
Xquery-20221114/clase.xml")//asignaturas/asignatura,

$b in $a/../../notas/nota,
$c in $a/../../alumnos/alumno

where $a/@nombre="LMSGI" and $b/@asig = $a/@cod and


$c/@cod =

$b/@alum

order by $b/@calificacion descending

return

<alumno>{ "Nombre: ",data($c/apenom)," Calificacion:


",data($b/@calificacion)

}</alumno>
6. Obtener los datos de asignatura, nombres y calificación ordenados
por nombre ascendente y nota descendente de las asignaturas
aprobadas.

for $a in doc("C:/Users/angel1/Documents/Ficheros XML para


probar XPath y
Xquery-20221114/clase.xml")//asignaturas/asignatura,

$b in $a/../../notas/nota,

$c in $a/../../alumnos/alumno

where $b/@asig = $a/@cod and $c/@cod = $b/@alum and


$b/@calificacion

>=5

order by $b/@alum,number($b/@calificacion) descending

return

<alumno>{ "Materia:",data($a/@nombre),"Nombre:
",data($c/apenom),"

Calificacion: ",data($b/@calificacion) }</alumno>

También podría gustarte