Tutoriel XQuerylogin
Tutoriel XQuery
auteur:php.cn  temps de mise à jour:2022-04-21 16:43:44

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 :

pour $x dans doc("books.xml")/bookstore/book/title
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="en">Everyday Italian</title>
<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 :

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

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

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

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