El Ejemplo de documento XML
Vamos a utilizar el "books.xml" documento en los ejemplos siguientes (same XML file as in the previous chapters) .
Ver el "books.xml" archivo en su navegador .
Selección y elementos filtrantes
Como hemos visto en los capítulos anteriores, estamos seleccionando y filtrando elementos, ya sea con una expresión de ruta o con una expresión FLWOR.
Mira la siguiente expresión FLWOR:
for $x in doc("books.xml")/bookstore/book
where $x/price>30
order by $x/title
return $x/title
- para - (optional) se une a una variable a cada artículo devuelto por el en la expresión
- dejar que - (optional)
- donde - (optional) especifica un criterio
- Ordenar por - (optional) especifica el criterio de ordenación de los resultados
- retorno - Especifica lo que volver en el resultado
La cláusula
La cláusula se une una variable para cada artículo devuelto por el en la expresión. El resultados cláusula en iteración. No puede haber múltiples cláusulas en la misma expresión FLWOR.
Para repetir un número específico de veces en una de cláusula, pueda utilizar el to la palabra clave:
for $x in (1 to 5)
return <test>{$x}</test>
Resultado:
<test>1</test>
<test>2</test>
<test>3</test>
<test>4</test>
<test>5</test>
El at la palabra clave puede utilizarse para contar la iteración:
for $x at $i in doc("books.xml")/bookstore/book/title
return <book>{$i}. {data($x)}</book>
Resultado:
<book>1. Everyday Italian</book>
<book>2. Harry Potter</book>
<book>3. XQuery Kick Start</book>
<book>4. Learning XML</book>
También se permite con más de una en la expresión en la cláusula FOR. Usar una coma para separar cada en la expresión:
for $x in (10,20), $y in (100,200)
return <test>x={$x} and y={$y}</test>
Resultado:
<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>
La cláusula let
La cláusula let permite asignaciones de variables y evita la repetición de la misma expresión muchas veces. La cláusula let no resulta en iteración.
let $x := (1 to 5)
return <test>{$x}</test>
Resultado:
<test>1 2 3 4 5</test>
La cláusula WHERE
La cláusula en la que se utiliza para especificar uno o más criterios para el resultado:
where $x/price>30 and $x/price<100
El orden por la cláusula
La cláusula ORDER BY se utiliza para especificar el orden de clasificación de los resultados. Aquí queremos ordenar los resultados por categoría y título:
for $x in doc("books.xml")/bookstore/book
order by $x/@category, $x/title
return $x/title
Resultado:
<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>
La cláusula de retorno
La cláusula de retorno especifica lo que se va a devolver.
for $x in doc("books.xml")/bookstore/book
return $x/title
Resultado:
<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>