XQuery - FLWOR
FLWOR est un acronyme qui signifie "For, Let, Where, Order by, Return". La liste suivante montre ce qu'ils représentent dans une expression FLWOR -
F - Pour - Sélectionne une collection de tous les nœuds.
L - Let - Place le résultat dans une variable XQuery.
W - Où - Sélectionne les nœuds spécifiés par la condition.
O - Trier par - Ordonne les nœuds spécifiés selon les critères.
R - Retour - Renvoie le résultat final.
Exemple
Voici un exemple de document XML contenant des informations sur une collection de livres. Nous utiliserons une expression FLWOR pour récupérer les titres de ces livres dont le prix est supérieur à 30.
books.xml
<?xml version="1.0" encoding="UTF-8"?>
<books>
<book category="JAVA">
<title lang="en">Learn Java in 24 Hours</title>
<author>Robert</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="DOTNET">
<title lang="en">Learn .Net in 24 hours</title>
<author>Peter</author>
<year>2011</year>
<price>70.50</price>
</book>
<book category="XML">
<title lang="en">Learn XQuery in 24 hours</title>
<author>Robert</author>
<author>Peter</author>
<year>2013</year>
<price>50.00</price>
</book>
<book category="XML">
<title lang="en">Learn XPath in 24 hours</title>
<author>Jay Ban</author>
<year>2010</year>
<price>16.50</price>
</book>
</books>
Le document Xquery suivant contient l'expression de requête à exécuter sur le document XML ci-dessus.
books.xqy
let $books := (doc("books.xml")/books/book)
return <results>
{
for $x in $books
where $x/price>30
order by $x/price
return $x/title
}
</results>
Résultat
<title lang="en">Learn XQuery in 24 hours</title>
<title lang="en">Learn .Net in 24 hours</title>
Vérifier le résultat
Pour vérifier le résultat, remplacez le contenu de books.xqy (indiqué dans le chapitre Configuration de l' environnement ) par l'expression XQuery ci-dessus et exécutez le programme java XQueryTester.