Título: Ejercicios Prácticos de XQuery con XML: Preparación Intensiva para el Examen de DAW


Introducción

XQuery es un lenguaje clave para la consulta y manipulación de datos XML, fundamental en el desarrollo de aplicaciones web (DAW). En este artículo, presentamos un archivo XML de ejemplo y una serie de ejercicios prácticos con soluciones en XQuery. Estos ejercicios están diseñados para mejorar tu comprensión y habilidades en el uso de XQuery.

Archivo XML de Ejemplo

Consideremos el siguiente archivo XML que contiene información sobre un sistema de gestión de cursos, llamado cursos.xml:

<sistema_cursos>
  <curso>
    <nombre>Introducción a la Programación</nombre>
    <instructor>Juan Pérez</instructor>
    <categoria>Informática</categoria>
    <precio>50</precio>
    <fecha_inicio>2023-01-15</fecha_inicio>
    <estudiantes_inscritos>30</estudiantes_inscritos>
  </curso>
  <curso>
    <nombre>Diseño Gráfico Básico</nombre>
    <instructor>Maria Lopez</instructor>
    <categoria>Diseño</categoria>
    <precio>70</precio>
    <fecha_inicio>2023-02-20</fecha_inicio>
    <estudiantes_inscritos>25</estudiantes_inscritos>
  </curso>
  <curso>
    <nombre>Desarrollo Web Avanzado</nombre>
    <instructor>Carlos Fernandez</instructor>
    <categoria>Informática</categoria>
    <precio>100</precio>
    <fecha_inicio>2023-03-10</fecha_inicio>
    <estudiantes_inscritos>15</estudiantes_inscritos>
  </curso>
</sistema_cursos>

Ejercicio 1: Selección de Cursos por Categoría

Pregunta: Escribe una consulta XQuery que retorne los nombres de los cursos de la categoría «Informática».

Solución:

for $curso in doc("cursos.xml")//curso
where $curso/categoria = "Informática"
return $curso/nombre

Ejercicio 2: Filtrar Cursos por Instructor

Pregunta: Escribe una consulta XQuery que retorne los nombres y precios de los cursos impartidos por «Maria Lopez».

Solución:

for $curso in doc("cursos.xml")//curso
where $curso/instructor = "Maria Lopez"
return <curso>
         <nombre>{$curso/nombre}</nombre>
         <precio>{$curso/precio}</precio>
       </curso>

Ejercicio 3: Ordenar Cursos por Fecha de Inicio

Pregunta: Escribe una consulta XQuery que retorne los cursos ordenados por fecha de inicio en orden ascendente.

Solución:

for $curso in doc("cursos.xml")//curso
order by $curso/fecha_inicio
return $curso

Ejercicio 4: Calcular el Precio Promedio de los Cursos

Pregunta: Escribe una consulta XQuery que calcule y retorne el precio promedio de todos los cursos en el sistema.

Solución:

let $precios := doc("cursos.xml")//curso/precio
let $promedio := avg($precios)
return <precio_promedio>{$promedio}</precio_promedio>

Ejercicio 5: Agrupar Cursos por Instructor

Pregunta: Escribe una consulta XQuery que agrupe los cursos por instructor y muestre el número de cursos que imparte cada uno.

Solución:

let $cursos := doc("cursos.xml")//curso
for $instructor in distinct-values($cursos/instructor)
let $conteo := count($cursos[instructor = $instructor])
return <instructor>
         <nombre>{$instructor}</nombre>
         <cantidad_cursos>{$conteo}</cantidad_cursos>
       </instructor>

Ejercicio 6: Cursos con Más de 20 Estudiantes Inscritos

Pregunta: Escribe una consulta XQuery que retorne los nombres de los cursos que tienen más de 20 estudiantes inscritos.

Solución:

for $curso in doc("cursos.xml")//curso
where $curso/estudiantes_inscritos > 20
return $curso/nombre

Ejercicio 7: Calcular el Ingreso Total por Curso

Pregunta: Escribe una consulta XQuery que calcule y retorne el ingreso total de cada curso (precio * estudiantes inscritos).

Solución:

for $curso in doc("cursos.xml")//curso
let $ingreso_total := $curso/precio * $curso/estudiantes_inscritos
return <curso>
         <nombre>{$curso/nombre}</nombre>
         <ingreso_total>{$ingreso_total}</ingreso_total>
       </curso>

Conclusión

Estos ejercicios prácticos cubren una variedad de aspectos fundamentales de XQuery, desde la selección y filtrado de datos hasta la manipulación y agrupamiento avanzado. Practicar con estos ejemplos te ayudará a desarrollar una comprensión sólida de XQuery y te preparará mejor para tus exámenes de DAW. ¡Sigue practicando para perfeccionar tus habilidades en el manejo de datos XML!

close up photo of programming of codes
Photo by luis gomes on Pexels.com

Deja un comentario

Información básica sobre protección de datos Ver más

  • Responsable: Tomas Gonzalez.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento:  No se ceden o comunican datos a terceros para prestar este servicio.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.

error: Content is protected !!

Descubre más desde Tomás González: Formador y Desarrollador Web

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo

Este sitio web utiliza cookies, si necesitas más información puedes visitar nuestra política de privacidad    Ver
Privacidad