XQuery Sélection et filtrage
documents d'instance XML
Dans l'exemple suivant, nous allons continuer à utiliser ce "books.xml" (même fichier XML et la section ci-dessus est utilisé) document.
Voir "books.xml" fichier dans votre navigateur .
Sélectionnez et filtrer les éléments
Comme on le voit dans le chapitre précédent, nous utilisons l'expression FLWOR ou une expression de chemin pour sélectionner et éléments filtrants.
Considérons l'expression FLWOR suivante:
where $x/price>30
order by $x/title
return $x/title
- pour - (facultatif) pour chacun des éléments groupés renvoyés par l'expression dans une variable
- laissez - (facultatif)
- où - (en option) fixé une condition
- commande par - (en option) définir l'ordre dans les résultats
- retour - les dispositions dans les résultats renvoyés contenu
pour la déclaration
déclaration pour la variable liée à chaque article retourné par l'expression. pour la déclaration Iteration. Il peut y avoir plusieurs pour la même déclaration dans une expression de FLWOR.
Pour un certain nombre de fois dans une instruction for en boucle, vous pouvez utiliser des mots-clés à:
return <test>{$x}</test>
Résultats:
<test>2</test>
<test>3</test>
<test>4</test>
<test>5</test>
Mots - clés peuvent être utilisés pour calculer l'itération à:
return <book>{$i}. {data($x)}</book>
Résultats:
<book>2. Harry Potter</book>
<book>3. XQuery Kick Start</book>
<book>4. Learning XML</book>
Dans la déclaration permet également de plus d'une expression. S'il vous plaît utiliser une virgule pour séparer chaque expression:
return <test>x={$x} and y={$y}</test>
Résultats:
<test>x=10 and y=200</test>
<test>x=20 and y=100</test>
<test>x=20 and y=200</test>
déclaration laisse
laissez déclaration peut être répartition variable complète, et d'éviter répété la même expression. laissez déclaration ne provoque pas itération.
return <test>{$x}</test>
Résultats:
où les déclarations
où la déclaration est utilisée pour définir le résultat d'une ou plusieurs conditions (critères).
commande par déclaration
commande par déclaration pour trier les résultats d'un ordre prédéterminé. Ici, nous voulons trier les résultats en fonction de la catégorie et le titre:
order by $x/@category, $x/title
return $x/title
Résultats:
<title lang="en">Everyday Italian</title>
<title lang="en">Learning XML</title>
<title lang="en">XQuery Kick Start</title>
déclaration de retour:
déclaration de retour précise pour renvoyer le contenu.
return $x/title
Résultats:
<title lang="en">Harry Potter</title>
<title lang="en">XQuery Kick Start</title>
<title lang="en">Learning XML</title>