Tutoriel XQuerylogin
Tutoriel XQuery
auteur:php.cn  temps de mise à jour:2022-04-21 16:43:44

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 :

for $x in doc("books.xml")/bookstore/book
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 :

for $x in (1 to 5)
return < ;{$x}</test>

Résultat :

<test>1</test>
<test>2</ test> ;
<test>3</test>
<test>4</test>
<test>5</test>

Mots clés at peut être utilisé pour calculer les itérations :

for $x at $i in doc("books.xml")/bookstore/book/title
return <book>{ $i} {data($x)}</book>

Résultat :

<book>1. ><book>2. Harry Potter</book>
<book>3
Les expressions in multiples sont également autorisées dans l'instruction for. Veuillez utiliser des virgules pour séparer chaque expression :
pour $x dans (10,20), $y dans (100 200)

return <test>x={$x} et y ={$y}</test>

Résultat :
<test>x=10 et y=100</test>

< test>x=10 et y=200</test>

<test>x=20 et y=100</test>
<test>x=20 et y=200</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.

let $x := (1 à 5)
return <test>{$x}</test>

Résultat :

<test>1 2 3 4 5</test>

instruction où

l'instruction où est utilisée pour définir une ou plusieurs conditions pour le résultat ( critères).

où $x/prix>30 et $x/prix<100

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 :

for $x in doc("books.xml")/bookstore/book
order by $x/@category , $x/title
retour $x/title

Résultat :

<title lang="fr">Harry Potter</title>
<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.

pour x $ dans doc("books.xml")/librairie/livre
retourner x $/titre

Résultat :

<title lang="fr">Italien de tous les jours</title>
<title lang="fr">Harry Potter</title>
<title lang="fr"> ;