Saltar al contenido

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

gray and black laptop computer

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!

gray and black laptop computer
Photo by Pixabay on Pexels.com
Etiquetas:

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

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.

¿Atascado con tu proyecto? Presupuesto GRATIS

X
error: Content is protected !!
Este sitio web utiliza cookies, si necesitas más información puedes visitar nuestra política de privacidad    Ver
Privacidad