Derniers tutoriels de développement web
 

XQuery Sélection et filtrage


Le XML Exemple de document

Nous allons utiliser le "books.xml" le document dans les exemples ci - dessous (same XML file as in the previous chapters) .

Voir le "books.xml" fichier dans votre navigateur .


Sélection et éléments de filtrage

Comme nous l'avons vu dans les chapitres précédents, nous sélectionnons et le filtrage des éléments avec soit une expression de chemin ou avec une expression FLWOR.

Regardez l'expression FLWOR suivante:

for $x in doc("books.xml")/bookstore/book
where $x/price>30
order by $x/title
return $x/title
  • pour - (optional) en (optional) relie une variable à chaque article retourné par l'expression
  • laissez - (optional)
  • où - (optional) en (optional) spécifie un critère
  • par - (optional) spécifie le ordre de tri du résultat
  • retour - spécifie quoi revenir dans le résultat

La clause

La clause relie une variable à chaque article retourné par l'expression. Les résultats pour clause dans l'itération. Il peut y avoir plusieurs des clauses dans la même expression FLWOR.

Pour boucler un certain nombre de fois dans une clause, vous pouvez utiliser le to mot - clé:

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

Résultat:

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

Le at mot - clé peut être utilisée pour compter l'itération:

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

Résultat:

<book>1. Everyday Italian</book>
<book>2. Harry Potter</book>
<book>3. XQuery Kick Start</book>
<book>4. Learning XML</book>

Il est également permis avec plus d'une expression dans la clause. Utilisation de la virgule pour séparer chaque expression:

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>

Le let article

La clause let permet des affectations de variables et il évite de répéter la même expression à plusieurs reprises. La clause let ne donne pas lieu à l'itération.

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

Résultat:

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

La clause where

La clause where permet de spécifier un ou plusieurs critères pour le résultat:

where $x/price>30 and $x/price<100

L'ordre par l'article

L'ordre par clause est utilisée pour spécifier l'ordre de tri du résultat. Ici, nous voulons commander le résultat par catégorie et le titre:

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="en">Everyday Italian</title>
<title lang="en">Learning XML</title>
<title lang="en">XQuery Kick Start</title>

La clause de retour

La clause de retour précise ce qui doit être retourné.

for $x in doc("books.xml")/bookstore/book
return $x/title

Résultat:

<title lang="en">Everyday Italian</title>
<title lang="en">Harry Potter</title>
<title lang="en">XQuery Kick Start</title>
<title lang="en">Learning XML</title>