Ejercicios Prácticos de XQuery con XML: Preparación Avanzada para el Examen de DAW

Introducción

XQuery es un lenguaje indispensable para la consulta y manipulación de datos XML, especialmente 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 te ayudarán a fortalecer tu comprensión y habilidades en el uso de XQuery.

Archivo XML de Ejemplo

Consideremos el siguiente archivo XML que contiene información sobre una biblioteca de música, llamado musica.xml:

<biblioteca>
  <album>
    <titulo>The Dark Side of the Moon</titulo>
    <artista>Pink Floyd</artista>
    <genero>Rock</genero>
    <precio>15.99</precio>
    <fecha_lanzamiento>1973-03-01</fecha_lanzamiento>
  </album>
  <album>
    <titulo>Thriller</titulo>
    <artista>Michael Jackson</artista>
    <genero>Pop</genero>
    <precio>12.99</precio>
    <fecha_lanzamiento>1982-11-30</fecha_lanzamiento>
  </album>
  <album>
    <titulo>Back in Black</titulo>
    <artista>AC/DC</artista>
    <genero>Rock</genero>
    <precio>10.99</precio>
    <fecha_lanzamiento>1980-07-25</fecha_lanzamiento>
  </album>
</biblioteca>

Ejercicio 1: Selección de Álbumes por Género

Pregunta: Escribe una consulta XQuery que retorne los títulos de los álbumes del género «Rock».

Solución:

for $album in doc("musica.xml")//album
where $album/genero = "Rock"
return $album/titulo

Ejercicio 2: Filtrar Álbumes por Artista

Pregunta: Escribe una consulta XQuery que retorne los títulos y precios de los álbumes del artista «Michael Jackson».

Solución:

for $album in doc("musica.xml")//album
where $album/artista = "Michael Jackson"
return <album>
         <titulo>{$album/titulo}</titulo>
         <precio>{$album/precio}</precio>
       </album>

Ejercicio 3: Ordenar Álbumes por Fecha de Lanzamiento

Pregunta: Escribe una consulta XQuery que retorne los álbumes ordenados por fecha de lanzamiento en orden descendente.

Solución:

for $album in doc("musica.xml")//album
order by $album/fecha_lanzamiento descending
return $album

Ejercicio 4: Calcular el Precio Promedio de los Álbumes

Pregunta: Escribe una consulta XQuery que calcule y retorne el precio promedio de todos los álbumes en la biblioteca.

Solución:

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

Ejercicio 5: Agrupar Álbumes por Artista

Pregunta: Escribe una consulta XQuery que agrupe los álbumes por artista y muestre el número de álbumes que tiene cada uno.

Solución:

let $albums := doc("musica.xml")//album
for $artista in distinct-values($albums/artista)
let $conteo := count($albums[artista = $artista])
return <artista>
         <nombre>{$artista}</nombre>
         <cantidad_albumes>{$conteo}</cantidad_albumes>
       </artista>

Ejercicio 6: Álbumes Publicados Después de una Fecha Específica

Pregunta: Escribe una consulta XQuery que retorne los títulos de los álbumes publicados después del 1 de enero de 1980.

Solución:

for $album in doc("musica.xml")//album
where $album/fecha_lanzamiento > xs:date("1980-01-01")
return $album/titulo

Conclusión

Estos ejercicios prácticos te ofrecen una visión integral del uso de XQuery para manipular y consultar datos XML. Practicar con estos ejemplos te preparará mejor para tus exámenes de DAW y te ayudará a desarrollar competencias clave en el manejo de datos XML. ¡Sigue practicando y explorando las capacidades de XQuery para convertirte en un experto en este lenguaje!

gray and black laptop computer
Photo by Pixabay 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