Derniers tutoriels de développement web
 

Exemple XQuery


Apprenons une base XQuery en regardant un exemple.


Le XML Exemple de document

Nous utiliserons le document XML suivant dans les exemples ci-dessous.

"Books.xml":

<?xml version="1.0" encoding="UTF-8"?>

<bookstore>

<book category="COOKING">
  <title lang="en">Everyday Italian</title>
  <author>Giada De Laurentiis</author>
  <year>2005</year>
  <price>30.00</price>
</book>

<book category="CHILDREN">
  <title lang="en">Harry Potter</title>
  <author>J K. Rowling</author>
  <year>2005</year>
  <price>29.99</price>
</book>

<book category="WEB">
  <title lang="en">XQuery Kick Start</title>
  <author>James McGovern</author>
  <author>Per Bothner</author>
  <author>Kurt Cagle</author>
  <author>James Linn</author>
  <author>Vaidyanathan Nagarajan</author>
  <year>2003</year>
  <price>49.99</price>
</book>

<book category="WEB">
  <title lang="en">Learning XML</title>
  <author>Erik T. Ray</author>
  <year>2003</year>
  <price>39.95</price>
</book>

</bookstore>

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


Comment sélectionner des nœuds à partir de « books.xml »?

Les fonctions

XQuery utilise des fonctions pour extraire des données de documents XML.

Le doc() fonction est utilisée pour ouvrir le "books.xml" fichier:

doc("books.xml")

Les expressions de chemin

XQuery utilise des expressions de chemin pour naviguer à travers des éléments dans un document XML.

L'expression de chemin suivant permet de sélectionner tous les éléments de titre dans la "books.xml" fichier:

doc("books.xml") /bookstore/book/title

(/ Librairie sélectionne l'élément de librairie, / livre sélectionne tous les éléments de livre sous l'élément de librairie, et / titre sélectionne tous les éléments en titre sous chaque élément de livre)

Le XQuery ci-dessus extraira les éléments suivants:

<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>

prédicats

XQuery utilise prédicats pour limiter les données extraites de documents XML.

Le prédicat suivant permet de sélectionner tous les éléments de livre sous l'élément de librairie qui ont un élément de prix d'une valeur inférieure à 30:

doc("books.xml")/bookstore/book [price<30]

Le XQuery ci-dessus extraira les éléments suivants:

<book category="CHILDREN">
  <title lang="en">Harry Potter</title>
  <author>J K. Rowling</author>
  <year>2005</year>
  <price>29.99</price>
</book>