Tutoriel XML

ACCUEIL XML Introduction XML XML Comment utiliser Arbre XML Syntaxe XML Éléments XML Attributs XML Espaces de noms XML Affichage XML Requête HTTP XML Analyseur XML DOM XML XPath XML XML XSLT XQuery XML XMLXLink Validateur XML DTD XML Schéma XML Serveur XML Exemples XML XML Quiz Certificat XML

XMLAJAX

Présentation d'AJAX AJAX XMLHttp Requête AJAX Réponse AJAX Fichier XML AJAX PHP AJAX ASP AJAX Base de données AJAX Applications AJAX Exemples AJAX

DOM XML

Présentation du DOM Nœuds DOM Accès au DOM Informations sur le nœud DOM Liste des nœuds DOM Traversée du DOM Navigation DOM DOM Obtenir des valeurs Nœuds de changement DOM DOM Supprimer les nœuds DOM Remplacer les nœuds DOM Créer des nœuds DOM Ajouter des nœuds Nœuds de clonage DOM Exemples DOM

Tutoriel XPath

Présentation de XPath Nœuds XPath Syntaxe XPath Axes XPath Opérateurs XPath Exemples XPath

Tutoriel XSLT

Présentation de XSLT Langages XSL Transformation XSLT XSLT <modèle> XSLT <valeur-de> XSLT <pour-chaque> XSLT <sort> XSLT <si> XSLT <choisir> Appliquer XSLT XSLT sur le client XSLT sur le serveur XSLT Éditer XML Exemples XSLT

Tutoriel XQuery

Présentation de XQuery Exemple XQuery XQuery FLWOR XQuery HTML Termes XQuery Syntaxe XQuery Ajouter XQuery Sélection XQuery Fonctions XQuery

DTD XML

Présentation de la DTD Blocs de construction DTD Éléments DTD Attributs DTD Éléments DTD vs Attr Entités DTD Exemples de DTD

Schéma XSD

Présentation XSD Comment XSD XSD <schéma> Éléments XSD Attributs XSD Restrictions XSD

Complexe XSD

Éléments XSD XSD vide Éléments XSD uniquement Texte XSD uniquement XSD Mixte Indicateurs XSD XSD <tout> XSD <anyAttribute> Remplacement XSD Exemple XSD

Données XSD

Chaîne XSD Date XSD Numérique XSD Divers XSD Référence XSD

Services Web

Services XML XMLWSDL SAVON XML XML RDF XML RSS

Les références

Types de nœuds DOM Nœud DOM Liste de nœuds DOM DOM NamedNodeMap Documents DOM Élément DOM Attribut DOM Texte DOM DOM CDATA DOM Comment DOM XMLHttpRequest Analyseur DOM Éléments XSLT Fonctions XSLT/XPath

Sélection et filtrage XQuery


L'exemple de document XML

Nous utiliserons le document "books.xml" dans les exemples ci-dessous (même fichier XML que dans les chapitres précédents).

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


Sélection et filtrage des éléments

Comme nous l'avons vu dans les chapitres précédents, nous sélectionnons et filtrons des éléments soit avec une expression Path soit 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
  • for - (facultatif) lie une variable à chaque élément renvoyé par l'expression in
  • laisser - (facultatif)
  • où - (facultatif) spécifie un critère
  • order by - (facultatif) spécifie l'ordre de tri du résultat
  • return - spécifie ce qu'il faut retourner dans le résultat

La clause pour

La clause for lie une variable à chaque élément renvoyé par l'expression in. La clause for entraîne une itération. Il peut y avoir plusieurs clauses for dans la même expression FLWOR.

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

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 mot-clé at peut être utilisé 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 autorisé avec plus d'une expression dans la clause for. Utilisez une virgule pour les séparer dans l'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>


La clause let

La clause let autorise les affectations de variables et évite de répéter plusieurs fois la même expression. La clause let n'entraîne pas d'itération.

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

Résultat:

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

La clause où

La clause where est utilisée pour spécifier un ou plusieurs critères pour le résultat :

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

La commande par Clause

La clause order by est utilisée pour spécifier l'ordre de tri du résultat. Ici, nous voulons ordonner le résultat par catégorie et 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 spécifie 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>