Selección y filtrado en XQuery
- Página anterior Agregar XQuery
- Página siguiente Funciones en XQuery
Documento de ejemplo XML
En los siguientes ejemplos, continuaremos utilizando el documento "books.xml" (el mismo que se utilizó en el capítulo anterior).
Selección y filtrado de elementos
Como se vio en el capítulo anterior, utilizamos expresiones de ruta o expresiones FLWOR para seleccionar y filtrar elementos.
Vea la expresión FLWOR a continuación:
for $x in doc("books.xml")/bookstore/book donde $x/precio>30 ordenar por $x/título return $x/title
- for
- (opcional) Enlazar una variable a cada elemento devuelto por una expresión in
- let
- (opcional)
- donde
- (opcional) Establecer una condición
- ordenar por
- (opcional) Establecer el orden de los resultados
- devolver
- especificar el contenido que se devuelve en los resultados
declaración for
La declaración for puede enlazar una variable a cada elemento devuelto por una expresión in. La declaración for puede generar iteraciones. Puede existir múltiples declaraciones for en una expresión FLWOR.
Si desea realizar un bucle específico de次数 en una declaración for, puede usarpalabra clave para :
para $x en (1 para 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 utilizar para calcular iteraciones:
for $x at $i in doc("books.xml")/bookstore/book/title return <book>{$i}. {data($x)}</book>
Resultados:
<book>1. Italiano cotidiano</book> <book>2. Harry Potter</book> <book>3. XQuery Kick Start</book> <book>4. Aprender XML</book>
De la misma manera en la declaración forPermite múltiples expresiones in. Utilice comas 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>
Declaración let
La declaración let puede realizar asignaciones de variables y evitar la repetición multiple 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í, queremos ordenar 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="es">Italiano cotidiano</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 retornar.
for $x in doc("books.xml")/bookstore/book return $x/title
Resultados:
<title lang="es">Italiano cotidiano</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 en XQuery