Introducción
XQuery es un lenguaje robusto para la consulta y manipulación de datos en XML, ampliamente utilizado en el desarrollo de aplicaciones web (DAW). En este artículo, presentaremos un archivo XML ejemplo y una serie de ejercicios prácticos con soluciones en XQuery. Estos ejercicios te ayudarán a entender mejor cómo trabajar con datos XML y cómo escribir consultas XQuery efectivas.
Archivo XML de Ejemplo
Supongamos que tenemos un archivo XML que contiene información sobre una librería, llamado libreria.xml
:
<libreria>
<libro>
<titulo>Aprendiendo XQuery</titulo>
<autor>Juan Pérez</autor>
<precio>29.99</precio>
<fecha_publicacion>2021-03-15</fecha_publicacion>
</libro>
<libro>
<titulo>XML para Principiantes</titulo>
<autor>Maria Garcia</autor>
<precio>19.99</precio>
<fecha_publicacion>2020-07-22</fecha_publicacion>
</libro>
<libro>
<titulo>Avanzando en XML</titulo>
<autor>Juan Pérez</autor>
<precio>39.99</precio>
<fecha_publicacion>2022-01-10</fecha_publicacion>
</libro>
</libreria>
Ejercicio 1: Selección de Libros por Precio
Pregunta: Escribe una consulta XQuery que retorne los títulos de los libros que cuestan más de $20.
Solución:
for $libro in doc("libreria.xml")//libro
where $libro/precio > 20
return $libro/titulo
Ejercicio 2: Filtrar por Autor
Pregunta: Escribe una consulta XQuery que retorne los títulos y precios de los libros escritos por «Juan Pérez».
Solución:
for $libro in doc("libreria.xml")//libro
where $libro/autor = "Juan Pérez"
return <libro>
<titulo>{$libro/titulo}</titulo>
<precio>{$libro/precio}</precio>
</libro>
Ejercicio 3: Ordenar Libros por Fecha de Publicación
Pregunta: Escribe una consulta XQuery que retorne los libros ordenados por fecha de publicación en orden ascendente.
Solución:
for $libro in doc("libreria.xml")//libro
order by $libro/fecha_publicacion
return $libro
Ejercicio 4: Crear una Lista de Libros con Descuento
Pregunta: Escribe una consulta XQuery que aplique un descuento del 10% a todos los libros y retorne un nuevo elemento XML con los títulos y los precios después del descuento.
Solución:
for $libro in doc("libreria.xml")//libro
let $precio_descuento := $libro/precio * 0.9
return <libro>
<titulo>{$libro/titulo}</titulo>
<precio>{$precio_descuento}</precio>
</libro>
Ejercicio 5: Contar el Número de Libros por Autor
Pregunta: Escribe una consulta XQuery que cuente cuántos libros ha escrito cada autor.
Solución:
let $libros := doc("libreria.xml")//libro
for $autor in distinct-values($libros/autor)
let $conteo := count($libros[autor = $autor])
return <autor>
<nombre>{$autor}</nombre>
<cantidad_libros>{$conteo}</cantidad_libros>
</autor>
Conclusión
Estos ejercicios prácticos cubren una variedad de aspectos esenciales de XQuery, desde la selección y filtrado de datos hasta la manipulación y agrupamiento. Practicar con estos ejemplos te ayudará a mejorar tu habilidad para escribir consultas XQuery efectivas y a prepararte mejor para tus exámenes de DAW. ¡Sigue practicando y explorando las capacidades de XQuery para convertirte en un experto en el manejo de datos XML!
![gray and black laptop computer](https://infogonzalez.com/wp-content/uploads/2024/02/pexels-photo-265087-1024x682.jpeg)
Gracias por visitar mi blog de informática, mi nombre es Tomás y soy formador y desarrollador web. Si quiere usted dejarme alguna sugerencia, ayuda o quiere un servicio de formación estoy escuchando ofertas en tomas.gonzalez@infogonzalez.com, en Facebook a https://www.facebook.com/Infogonzalez estoy deseando escucharle. Su duda o sugerencia NO molesta.