Selección de XQuery y Filtrado
documentos de instancia XML
En el siguiente ejemplo vamos a seguir utilizando este documento "books.xml" (mismo archivo XML y la sección se utiliza más arriba).
Ver archivo "books.xml" en su navegador .
Seleccionar y filtrar los elementos
Como se ha visto en el capítulo anterior, utilizamos la expresión FLWOR o una expresión de ruta para seleccionar y elementos de filtro.
Considere la siguiente expresión FLWOR:
where $x/price>30
order by $x/title
return $x/title
- para - (opcional) para cada uno de los elementos incluidos devueltos por la expresión en una variable
- dejar que - (opcional)
- donde - (opcional) establecer una condición
- Ordenar por - (opcional) establecer el orden de los resultados
- vuelven - las disposiciones de los resultados devueltos contenido
para la declaración
declaración de la variable ligada a cada elemento devuelto por la expresión. para la iteración comunicado. Puede haber múltiples para la misma sentencia en una expresión FLWOR.
Para un número determinado de veces en una instrucción de bucle, puede utilizar palabras clave para:
return <test>{$x}</test>
resultados:
<test>2</test>
<test>3</test>
<test>4</test>
<test>5</test>
Las palabras clave pueden ser utilizados para calcular la iteración en:
return <book>{$i}. {data($x)}</book>
resultados:
<book>2. Harry Potter</book>
<book>3. XQuery Kick Start</book>
<book>4. Learning XML</book>
En la declaración también permite más de uno de expresión. Por favor, use una coma para separar cada uno en la expresión:
return <test>x={$x} and y={$y}</test>
resultados:
<test>x=10 and y=200</test>
<test>x=20 and y=100</test>
<test>x=20 and y=200</test>
dejar que la declaración
dejar que la declaración puede ser variable distribución completa, y evitar repetir la misma expresión. dejar que la declaración no causa iteración.
return <test>{$x}</test>
resultados:
donde las declaraciones
donde se utiliza declaración para establecer el resultado de una o más condiciones (criterios).
ORDER BY
ORDER BY para ordenar los resultados de un orden predeterminado. Aquí, queremos ordenar los resultados en función de la categoría y el título:
order by $x/@category, $x/title
return $x/title
resultados:
<title lang="en">Everyday Italian</title>
<title lang="en">Learning XML</title>
<title lang="en">XQuery Kick Start</title>
sentencia de retorno:
declaración de retorno especifica para devolver el contenido.
return $x/title
resultados:
<title lang="en">Harry Potter</title>
<title lang="en">XQuery Kick Start</title>
<title lang="en">Learning XML</title>