XQuery ajoutant des éléments et des attributs
Exemple de document XML
Nous continuerons à utiliser ce document "books.xml" dans les exemples suivants (le même fichier XML utilisé dans les chapitres ci-dessus).
Affichez le fichier "books.xml" dans votre navigateur.
Ajouter des éléments et des attributs aux résultats
Comme vu dans la section précédente, nous pouvons référencer des éléments et des attributs du fichier d'entrée dans les résultats :
order by $x
return $x
L'expression XQuery ci-dessus La formule fera référence à l'élément title et à l'attribut lang dans le résultat, comme ceci :
<title lang=" fr ">Harry Potter</title>
<title lang="fr">Apprentissage XML</title>
<title lang="fr">XQuery Kick Start</title>
L'expression XQuery ci-dessus renvoie les éléments de titre de la même manière qu'ils sont décrits dans le document d'entrée.
Maintenant, nous voulons ajouter nos propres éléments et attributs au résultat !
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 :
<body>
<h1>Bookstore</h1>
<ul>
{
pour x $ dans doc("books.xml")/librairie/livre
commander par $x/titre
retourner <li>{data($ x/title)} Catégorie : {data($x/@category)}</li>
}
</ul>
</body>
<. ;/html>
L'expression XQuery ci-dessus générera les résultats suivants :
<body>
< ;h1>Librairie</h1>
<ul>
<li>Italien de tous les jours</li>
<li>Harry Potter Catégorie : ENFANTS</. li>
<li>Apprentissage XML. Catégorie : WEB</li>
<li> ></body>
</html>
Ajout d'attributs aux éléments HTML
Ensuite, nous devons utiliser l'attribut de catégorie comme attribut de classe dans la liste HTML :
< body>
<h1>Librairie</h1>
<ul>
{
pour x $ dans doc("books.xml")/librairie/livre
trier par $x/titre
retour <li class="{data($x/@category)}">{data($x/title)}</li>
}
</ul>
</body>
</html>
L'expression XQuery ci-dessus produit les résultats suivants :
<body>
<h1>Librairie</h1>
<ul>
<li class="CUISINE"> ; Italien de tous les jours</li>
<li class="ENFANTS">Harry Potter</li>
<li class="WEB">Apprentissage XML</li>
< classe="WEB">>