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.