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!