Ajout d'Éléments et d'Attributs en XQuery

Document d'exemple XML

Nous allons continuer à utiliser le document "books.xml" dans les exemples suivants (le même fichier XML que dans les chapitres précédents).

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

Ajouter des éléments et des attributs aux résultats

Comme vu dans le paragraphe précédent, nous pouvons faire référence aux éléments et attributs du fichier d'entrée dans les résultats :

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

Les expressions XQuery ci-dessus citent les éléments title et l'attribut lang dans les résultats, comme suit :

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

Les expressions XQuery ci-dessus retournent les éléments title de la même manière que ceux décrits dans le document d'entrée.

Maintenant, nous allons ajouter nos propres éléments et attributs aux résultats !

Ajouter des éléments HTML et du texte

Maintenant, nous allons ajouter des éléments HTML aux résultats. Nous mettrons les résultats dans une liste HTML :

<html>
<body>
<h1>Bibliothèque de Livres</h1>
<ul>
{
for $x in doc("books.xml")/bookstore/book
order by $x/title
return <li>{data($x/title)}. Category: {data($x/@category)}</li>
}
</ul>
</body>
</html>

Le expressions XQuery suivantes génèrent les résultats suivants :

<html>
<body>
<h1>Bibliothèque de Livres</h1>
<ul>
<li>Everyday Italian. Category: COOKING</li>
<li>Harry Potter. Catégorie: CHILDREN</li>
<li>Learning XML. Catégorie: WEB</li>
<li>XQuery Kick Start. Catégorie: WEB</li>
</ul>
</body>
</html>

Ajouter des attributs aux éléments HTML

Ensuite, nous allons utiliser l'attribut category comme attribut class dans la liste HTML :

<html>
<body>
<h1>Bibliothèque de Livres</h1>
<ul>
{
for $x in doc("books.xml")/bookstore/book
order by $x/title
return <li class="{data($x/@category)}">{data($x/title)}</li>
}
</ul>
</body>
</html>

L'expression XQuery suivante génère les résultats suivants :

<html>
<body>
<h1>Bibliothèque de Livres</h1>
<ul>
<li class="COOKING">Everyday Italian</li>
<li class="CHILDREN">Harry Potter</li>
<li class="WEB">Learning XML</li>
<li class="WEB">XQuery Kick Start</li>
</ul>
</body>
</html>