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

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

Deja un comentario

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.

error: Content is protected !!

Descubre más desde InfoGonzalez - Blog de formador e informático

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo

Este sitio web utiliza cookies, si necesitas más información puedes visitar nuestra política de privacidad    Ver
Privacidad
Creative Commons License
Except where otherwise noted, the content on this site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.