Sélection et filtrage XQuery
- Page précédente Ajout XQuery
- Page suivante Fonctions XQuery
Document d'exemple XML
Nous allons continuer à utiliser le document "books.xml" dans les exemples suivants (le même fichier XML que dans les chapitres précédents).
Sélectionner et filtrer les éléments
Comme vu dans les chapitres précédents, nous utilisons les expressions de chemin ou les expressions FLWOR pour sélectionner et filtrer les éléments.
Voyez l'expression FLWOR suivante :
for $x in doc("books.xml")/bookstore/book where $x/price>30 order by $x/title return $x/title
- for
- (optionnel) Liez une variable à chaque élément retourné par l'expression in
- let
- (optionnel)
- where
- (optionnel) Définir une condition
- order by
- (optionnel) Définir l'ordre des résultats
- return
- définir le contenu retourné dans les résultats
instruction for
L'instruction for lie une variable à chaque élément retourné par une expression in. L'instruction for peut générer une itération. Plusieurs instructions for peuvent coexister dans une expression FLWOR.
Pour effectuer un nombre spécifique de boucles dans une instruction for, vous pouvez utilisermot-clé à :
pour $x dans (1 à 5) return <test>{$x}</test>
Résultat :
<test>1</test> <test>2</test> <test>3</test> <test>4</test> <test>5</test>
Mot-clé at Peut être utilisé pour calculer l'itération :
for $x at $i in doc("books.xml")/bookstore/book/title return <book>{$i}. {data($x)}</book>
Résultat :
<book>1. Italien Quotidien</book> <book>2. Harry Potter</book> <book>3. Démarrer avec XQuery</book> <book>4. Apprendre XML</book>
De même dans la déclaration forPermet plusieurs expressions inUtilisez une virgule pour séparer chaque expression in :
for $x in (10,20), $y in (100,200) return <test>x={$x} and y={$y}</test>
Résultat :
<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>
Déclaration let
La déclaration let peut effectuer une allocation de variable et éviter les répétitions multiples d'une même expression. La déclaration let ne provoque pas d'itération.
let $x := (1 to 5) return <test>{$x}</test>
Résultat :
<test>1 2 3 4 5</test>
Déclaration where
La déclaration where est utilisée pour définir une ou plusieurs conditions (critères) pour les résultats.
where $x/price>30 and $x/price<100
Déclaration order by
La déclaration order by est utilisée pour définir l'ordre de tri des résultats. Ici, nous devons trier les résultats en fonction de category et title :
for $x in doc("books.xml")/bookstore/book order by $x/@category, $x/title return $x/title
Résultat :
<title lang="en">Harry Potter</title> <title lang="fr">Italien Quotidien</title> <title lang="en">Learning XML</title> <title lang="en">XQuery Kick Start</title>
Déclaration return :
La déclaration return spécifie le contenu à retourner.
for $x in doc("books.xml")/bookstore/book return $x/title
Résultat :
<title lang="fr">Italien Quotidien</title> <title lang="en">Harry Potter</title> <title lang="en">XQuery Kick Start</title> <title lang="en">Learning XML</title>
- Page précédente Ajout XQuery
- Page suivante Fonctions XQuery