Ejercicios Prácticos de XQuery con XML: Guía para Preparar el Examen de DAW
Introducción
XQuery es un lenguaje esencial para trabajar con datos XML, utilizado en diversas aplicaciones de desarrollo web (DAW). En este artículo, presentaremos un archivo XML ejemplo y una serie de ejercicios prácticos con sus soluciones en XQuery. Estos ejercicios están diseñados para ayudarte a comprender mejor el uso de XQuery en diferentes escenarios.
Archivo XML de Ejemplo
Consideremos el siguiente archivo XML que contiene información sobre un catálogo de películas, llamado peliculas.xml:
<catalogo>
<pelicula>
<titulo>El Gran Escape</titulo>
<director>John Sturges</director>
<genero>Accion</genero>
<precio>14.99</precio>
<fecha_lanzamiento>1963-07-04</fecha_lanzamiento>
</pelicula>
<pelicula>
<titulo>Casablanca</titulo>
<director>Michael Curtiz</director>
<genero>Drama</genero>
<precio>19.99</precio>
<fecha_lanzamiento>1942-11-26</fecha_lanzamiento>
</pelicula>
<pelicula>
<titulo>La La Land</titulo>
<director>Damien Chazelle</director>
<genero>Musical</genero>
<precio>24.99</precio>
<fecha_lanzamiento>2016-12-09</fecha_lanzamiento>
</pelicula>
</catalogo>
Ejercicio 1: Selección de Películas por Género
Pregunta: Escribe una consulta XQuery que retorne los títulos de las películas del género «Drama».
Solución:
for $pelicula in doc("peliculas.xml")//pelicula
where $pelicula/genero = "Drama"
return $pelicula/titulo
Ejercicio 2: Filtrar Películas por Director
Pregunta: Escribe una consulta XQuery que retorne los títulos y precios de las películas dirigidas por «Damien Chazelle».
Solución:
for $pelicula in doc("peliculas.xml")//pelicula
where $pelicula/director = "Damien Chazelle"
return <pelicula>
<titulo>{$pelicula/titulo}</titulo>
<precio>{$pelicula/precio}</precio>
</pelicula>
Ejercicio 3: Ordenar Películas por Fecha de Lanzamiento
Pregunta: Escribe una consulta XQuery que retorne las películas ordenadas por fecha de lanzamiento en orden descendente.
Solución:
for $pelicula in doc("peliculas.xml")//pelicula
order by $pelicula/fecha_lanzamiento descending
return $pelicula
Ejercicio 4: Calcular el Precio Promedio de las Películas
Pregunta: Escribe una consulta XQuery que calcule y retorne el precio promedio de todas las películas en el catálogo.
Solución:
let $precios := doc("peliculas.xml")//pelicula/precio
let $promedio := avg($precios)
return <precio_promedio>{$promedio}</precio_promedio>
Ejercicio 5: Agrupar Películas por Director
Pregunta: Escribe una consulta XQuery que agrupe las películas por director y muestre el número de películas que ha dirigido cada uno.
Solución:
let $peliculas := doc("peliculas.xml")//pelicula
for $director in distinct-values($peliculas/director)
let $conteo := count($peliculas[director = $director])
return <director>
<nombre>{$director}</nombre>
<cantidad_peliculas>{$conteo}</cantidad_peliculas>
</director>
Conclusión
Estos ejercicios prácticos te ayudarán a familiarizarte con el uso de XQuery para manipular y consultar datos XML, habilidades fundamentales para el desarrollo de aplicaciones web. Practicar con estos ejemplos te preparará mejor para tus exámenes de DAW y mejorará tu competencia en el manejo de datos XML. ¡Sigue practicando para convertirte en un experto en XQuery!
