Introducción a XQuery
1. ¿Qué es XQuery?
XQuery es un lenguaje diseñado para consultar y transformar documentos XML. Se
puede considerar similar a SQL pero aplicado a documentos XML.
Se utiliza para: - Buscar información dentro de un XML - Filtrar datos - Ordenar
resultados - Crear nuevos documentos XML a partir de otros
XQuery utiliza XPath para navegar por el documento.
2. Acceder a un documento XML
Para trabajar con un documento XML en XQuery se utiliza la función doc().
Ejemplo:
doc("[Link]")
Esto carga el documento XML llamado [Link].
Si queremos acceder a todos los títulos del documento:
doc("[Link]")//titulo
Si queremos únicamente el texto:
doc("[Link]")//titulo/text()
3. Estructura básica de XQuery (FLWOR)
La estructura principal de XQuery se llama FLWOR y está formada por varias
cláusulas.
FLWOR significa:
FOR → recorrer elementos
LET → guardar valores (opcional)
WHERE → filtrar resultados
ORDER BY → ordenar resultados
RETURN → indicar qué devolver
1
Ejemplo básico:
for $o in doc("[Link]")//obra
return $o/titulo
Este ejemplo recorre todas las obras y devuelve sus títulos.
4. Filtrar información (WHERE)
Podemos seleccionar solo algunos elementos usando condiciones.
Ejemplo: obras de España
for $o in doc("[Link]")//obra
where $o/@pais = "España"
return $o/titulo
Resultado: solo aparecerán los títulos de las obras cuyo país sea España.
5. Ordenar resultados
Podemos ordenar los datos usando order by.
Ejemplo: ordenar obras por año.
for $o in doc("[Link]")//obra
order by $o/@anyo
return $o/titulo
6. Crear nuevo XML
Una de las características más importantes de XQuery es que permite generar
nuevos documentos XML.
Ejemplo:
for $o in doc("[Link]")//obra
return
<obra>
{$o/titulo}
</obra>
2
Resultado:
<obra>
<titulo>Bal au moulin de la Galette</titulo>
</obra>
Las llaves {} se utilizan para insertar datos del XML original dentro del nuevo XML.
7. Ejemplo completo
Ejemplo: mostrar obras españolas ordenadas por año y crear un nuevo XML.
for $o in doc("[Link]")//obra
where $o/@pais = "España"
order by $o/@anyo
return
<obra>
{$o/titulo}
{$o/autor}
</obra>
8. Resumen rápido
Las partes más importantes de XQuery que debes recordar son:
doc() → cargar un XML
XPath → navegar por el documento
for → recorrer elementos
where → filtrar
order by → ordenar
return → devolver resultados
{} → insertar datos dentro de XML creado
Con estos elementos ya es posible realizar la mayoría de consultas básicas en
XQuery.
3
9. Ejercicios propuestos
1. Mostrar todos los títulos de las obras.
2. Mostrar las obras cuyo país sea Francia.
3. Mostrar los autores de las obras.
4. Mostrar las obras ordenadas por año.
5. Crear un XML que solo contenga los títulos de las obras.
4
SOLUCIONES A LOS EJERICICIOS PROPUESTOS
Soluciones ejercicios XQuery
1. Mostrar todos los títulos de las obras
for $o in doc("[Link]")//obra
return $o/titulo
También podría hacerse más simple:
doc("[Link]")//titulo
2. Mostrar las obras cuyo país sea Francia
for $o in doc("[Link]")//obra
where $o/@pais = "Francia"
return $o
Si solo queremos el título:
for $o in doc("[Link]")//obra
where $o/@pais = "Francia"
return $o/titulo
5
3. Mostrar los autores de las obras
for $o in doc("[Link]")//obra
return $o/autor
Versión corta:
doc("[Link]")//autor
4. Mostrar las obras ordenadas por año
for $o in doc("[Link]")//obra
order by $o/@anyo
return $o/titulo
Si queremos devolver toda la obra:
for $o in doc("[Link]")//obra
order by $o/@anyo
return $o
5. Crear un XML que solo contenga los títulos de las obras
<titulos>
for $o in doc("[Link]")//obra
return
<titulo>{$o/titulo/text()}</titulo>
</titulos>