Consultas XPath para la gestión de información sobre bailes

Clasificado en Música

Escrito el en español con un tamaño de 4,02 KB

Consultas XPath para gestión de información sobre bailes

Mostrar cada uno de los nombres de los bailes

for $baile in /bailes/baile
return <losbailes>{$baile/nombre/text()}</losbailes>

Mostrar los nombres de los bailes con el número de plazas

for $baile in /bailes/baile
return <losbailes>{$baile/nombre/text()} ({$baile/plazas/text()})</losbailes>

Mostrar los nombres de los bailes con precio mayor de 30

for $baile in /bailes/baile
where $baile/precio > 30
return $baile/nombre

for $baile in /bailes/baile[precio > 30]
return $baile/nombre

Mostrar los nombres de los bailes con precio mayor de 30 y moneda euro

for $baile in /bailes/baile
where $baile/precio > 30 and $baile/precio/@moneda = "euro"
return $baile/nombre

for $baile in /bailes/baile[precio > 30 and precio/@moneda = "euro"]
return $baile/nombre

Mostrar nombres y fecha de comienzo de los bailes que comiencen en enero

for $baile in /bailes/baile
where contains($baile/comienzo, "/1/")
return 
   <baile>
      {$baile/profesor}
      {$baile/comienzo}
   </baile>

Mostrar nombres de profesores y sala, ordenados por sala

for $baile in /bailes/baile
order by $baile/sala
return 
   <baile>
      {$baile/profesor}
      {$baile/sala}
   </baile>

Mostrar nombres de profesores sin repetir y salas donde dan clase, ordenados por nombre

for $profesor in distinct-values(/bailes/baile/profesor)
let $salas := /bailes/baile[profesor=$profesor]/sala
order by $profesor
return 
   <profesores>
     <nombre>{$profesor}</nombre>
     {$salas}
   </profesores>

Mostrar la media de los precios de todos los bailes

let $baile := /bailes/baile
return <media>{avg($baile/precio)}</media>

Mostrar la suma de los precios de los bailes de la sala 1

let $baile := /bailes/baile[sala=1]
return <total_sala_1>{sum($baile/precio)}</total_sala_1>

Mostrar cuántas plazas oferta el profesor "Jesus Lozano"

let $baile := /bailes/baile[profesor = "Jesus Lozano"]
return <plazas>{sum($baile/plazas)}</plazas>

Mostrar las ganancias de "Laura Mendiola" si se completan todas las plazas

let $baile := /bailes/baile[profesor = "Laura Mendiola"]
return $baile/plazas * $baile/precio

Mostrar las ganancias de "Jesus Lozano" por cada baile si se completan las plazas

for $baile in /bailes/baile
where $baile/profesor = "Jesus Lozano"
return <beneficio>{$baile/plazas * $baile/precio}</beneficio>

Mostrar las ganancias de "Laura" si se completan todas las plazas

for $baile in /bailes/baile
where starts-with($baile/profesor, "Laura")
return <beneficio>{$baile/plazas * $baile/precio}</beneficio>

for $baile in /bailes/baile[starts-with(profesor, "Laura")]
return <beneficio>{$baile/plazas * $baile/precio}</beneficio>

Mostrar nombre, precio y precio con descuento del 15% para familias numerosas, ordenados por nombre

for $baile in /bailes/baile
order by $baile/nombre
return 
   <baile>
      {$baile/nombre}
      <precio>{$baile/precio/text()}</precio>
      <fam_numerosa>{$baile/precio * 0.85}</fam_numerosa>
   </baile>

Mostrar todos los datos de cada baile excepto la fecha de comienzo y de fin

for $baile in /bailes/baile
return <baile>{$baile/* except $baile/comienzo except $baile/fin}</baile>

Mostrar en una tabla HTML los nombres de los bailes y su profesor

<table> {
  for $baile in /bailes/baile
  return <tr><td>{$baile/nombre/text()}</td><td>{$baile/profesor/text()}</td></tr>
} </table>

Entradas relacionadas: