Sélection et filtrage XQuery
Exemple de document XML
Nous continuerons à utiliser ce document "books.xml" dans les exemples suivants (le même fichier XML utilisé dans les chapitres ci-dessus).
Affichez le fichier "books.xml" dans votre navigateur.
Sélection et filtrage des éléments
Comme vu dans les chapitres précédents, nous utilisons des expressions de chemin ou des expressions FLWOR pour sélectionner et filtrer des éléments.
Regardez l'expression FLWOR suivante :
where $x/price>30
order by $x/title
return $x/title
for - (facultatif) Regrouper une variable pour chaque élément renvoyé par l'expression in
laisser - (facultatif)
où - (facultatif) définir une condition
commander par - (facultatif ) Définir l'ordre des résultats
return - Spécifiez le contenu renvoyé dans le résultat
for instruction
L'instruction for lie une variable à chaque élément renvoyé par l'expression in. L'instruction for produit une itération. Plusieurs instructions for peuvent exister dans la même expression FLWOR.
Pour boucler un nombre spécifié de fois dans une instruction for, vous pouvez utiliser le mot-clé pour :
return < ;{$x}</test>
Résultat :
<test>2</ test> ;
<test>3</test>
<test>4</test>
<test>5</test>
Mots clés at peut être utilisé pour calculer les itérations :
return <book>{ $i} {data($x)}</book>
Résultat :
<book>3
Les expressions in multiples sont également autorisées dans l'instruction for. Veuillez utiliser des virgules pour séparer chaque expression :
return <test>x={$x} et y ={$y}</test>
< test>x=10 et y=200</test>
<test>x=20 et y=100</test>instruction let
instruction let peut terminer l'affectation des variables et éviter de répéter la même expression plusieurs fois. L'instruction let ne provoque pas d'itération.
return <test>{$x}</test>
Résultat :
instruction où
l'instruction où est utilisée pour définir une ou plusieurs conditions pour le résultat ( critères).
ordre par instruction
ordre par instruction est utilisé pour spécifier l'ordre de l'ordre des résultats. Ici, nous devons trier les résultats selon la catégorie et le titre :
order by $x/@category , $x/title
retour $x/title
Résultat :
<title lang="fr">Italien de tous les jours</title>
<title lang="fr">Apprentissage XML</title>
<title lang="fr"> Kick Start</title>
return déclaration :
return déclaration spécifie le contenu à renvoyer.
retourner x $/titre
Résultat :
<title lang="fr">Harry Potter</title>
<title lang="fr"> ;