Selección y filtrado en XQuery
- Página anterior Agregar XQuery
- Página siguiente Funciones de XQuery
Documento de ejemplo de XML
Vamos a continuar utilizando el documento "books.xml" en los siguientes ejemplos (el mismo archivo XML que se utilizó en los capítulos anteriores).
Selección y filtrado de elementos
Como se vio en los capítulos anteriores, usamos expresiones de ruta o expresiones FLWOR para seleccionar y filtrar elementos.
Mira la expresión FLWOR a continuación:
for $x in doc("books.xml")/bookstore/book where $x/price>30 order by $x/title return $x/title
- for
- (opcional) Enlazar una variable a cada elemento devuelto por una expresión in
- let
- (opcional)
- where
- (opcional) Establecer una condición
- order by
- (opcional) Establecer el orden de los resultados
- return
- especifica el contenido que se devuelve en los resultados
instrucción for
la instrucción for puede unir variables a cada elemento devuelto por una expresión in. La instrucción for puede generar iteraciones. Puede haber múltiples instrucciones for en una expresión FLWOR.
para hacer bucles específicos de número en una instrucción for, puedes usar:palabra clave a :
for $x in (1 a 5) return <test>{$x}</test>
Resultados:
<test>1</test> <test>2</test> <test>3</test> <test>4</test> <test>5</test>
palabra clave at se puede usar para calcular iteraciones:
for $x en $i in doc("books.xml")/bookstore/book/title return <book>{$i}. {data($x)}</book>
Resultados:
<book>1. Everyday Italian</book> <book>2. Harry Potter</book> <book>3. XQuery Kick Start</book> <book>4. Learning XML</book>
lo mismo en la instrucción forpermite múltiples expresiones inuse coma para separar cada expresión in:
for $x in (10,20), $y in (100,200) return <test>x={$x} and y={$y}</test>
Resultados:
<test>x=10 and y=100</test> <test>x=10 and y=200</test> <test>x=20 and y=100</test> <test>x=20 and y=200</test>
instrucción let
La declaración let puede realizar asignaciones de variables y evitar la repetición de expresiones idénticas. La declaración let no causará iteración.
let $x := (1 to 5) return <test>{$x}</test>
Resultados:
<test>1 2 3 4 5</test>
Declaración where
La declaración where se utiliza para establecer una o más condiciones (criterios) para los resultados.
where $x/price>30 and $x/price<100
Declaración order by
La declaración order by se utiliza para especificar el orden de los resultados. Aquí, ordenamos los resultados según category y title:
for $x in doc("books.xml")/bookstore/book order by $x/@category, $x/title return $x/title
Resultados:
<title lang="en">Harry Potter</title> <title lang="en">Everyday Italian</title> <title lang="en">Learning XML</title> <title lang="en">XQuery Kick Start</title>
Declaración return:
La declaración return especifica el contenido que se debe devolver.
for $x in doc("books.xml")/bookstore/book return $x/title
Resultados:
<title lang="en">Everyday Italian</title> <title lang="en">Harry Potter</title> <title lang="en">XQuery Kick Start</title> <title lang="en">Learning XML</title>
- Página anterior Agregar XQuery
- Página siguiente Funciones de XQuery