Introducción
XQuery es un lenguaje potente para consultar y manipular datos XML, esencial para 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 ayudarte a comprender y aplicar XQuery en diferentes contextos.
Archivo XML de Ejemplo
Consideremos el siguiente archivo XML que contiene información sobre un inventario de productos, llamado inventario.xml
:
<inventario>
<producto>
<nombre>Ordenador Portátil</nombre>
<categoria>Electrónica</categoria>
<precio>999.99</precio>
<cantidad>50</cantidad>
</producto>
<producto>
<nombre>Teléfono Móvil</nombre>
<categoria>Electrónica</categoria>
<precio>599.99</precio>
<cantidad>200</cantidad>
</producto>
<producto>
<nombre>Escritorio</nombre>
<categoria>Muebles</categoria>
<precio>199.99</precio>
<cantidad>150</cantidad>
</producto>
</inventario>
Ejercicio 1: Selección de Productos por Categoría
Pregunta: Escribe una consulta XQuery que retorne los nombres de los productos de la categoría «Electrónica».
Solución:
for $producto in doc("inventario.xml")//producto
where $producto/categoria = "Electrónica"
return $producto/nombre
Ejercicio 2: Filtrar Productos por Precio
Pregunta: Escribe una consulta XQuery que retorne los nombres y precios de los productos que cuestan más de $500.
Solución:
for $producto in doc("inventario.xml")//producto
where $producto/precio > 500
return <producto>
<nombre>{$producto/nombre}</nombre>
<precio>{$producto/precio}</precio>
</producto>
Ejercicio 3: Ordenar Productos por Precio
Pregunta: Escribe una consulta XQuery que retorne los productos ordenados por precio en orden ascendente.
Solución:
for $producto in doc("inventario.xml")//producto
order by $producto/precio
return $producto
Ejercicio 4: Calcular el Valor Total del Inventario
Pregunta: Escribe una consulta XQuery que calcule y retorne el valor total del inventario.
Solución:
let $productos := doc("inventario.xml")//producto
let $valor_total := sum(
for $producto in $productos
return $producto/precio * $producto/cantidad
)
return <valor_total>{$valor_total}</valor_total>
Ejercicio 5: Agrupar Productos por Categoría
Pregunta: Escribe una consulta XQuery que agrupe los productos por categoría y muestre el número de productos en cada categoría.
Solución:
let $productos := doc("inventario.xml")//producto
for $categoria in distinct-values($productos/categoria)
let $conteo := count($productos[categoria = $categoria])
return <categoria>
<nombre>{$categoria}</nombre>
<cantidad_productos>{$conteo}</cantidad_productos>
</categoria>
Conclusión
Estos ejercicios prácticos te proporcionan una base sólida para trabajar con XQuery y datos XML, habilidades cruciales en el desarrollo de aplicaciones web. Practicar con estos ejemplos te ayudará a prepararte mejor para tus exámenes de DAW y a desarrollar tu capacidad para manejar datos XML de manera efectiva. ¡Sigue practicando para convertirte en un experto en XQuery!
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.