Bonjour,
J'aurais deux question a vous poser en XQuery. Je n'arrive pas a trouver la solution qui doit être simple. Pouvez-vous m'aiguiller ?
Question 1:
Définir une fonction qui transforme 1 noeud bookmark passé en paramètre en 1 noeud élément div,tel que
• Le titre et l'url sont mis dans un premier paragraphe (élément p) qui contient un lien (élément a) ayant pour référence l'url et pour contenu textuel, le titre s'il existe et à défaut l'url.
• Si la description existe elle est mise dans un second paragraphe
le code ci-dessous ne fonctionne pas correctement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 declare function local:sortie_bookmarks($bm as element(bookmark)) as element(div){ element div { element p { <a href='{$bm/@url}'>{if (exists($bm/title/text())) then ($bm/title/text()) else ($bm/@url)}</a> }, element p { if (exists($bm/description/text())) then $bm/description/text() else () } } }; local:sortie_bookmarks(//bookmark[@url="http://www.linux.org"])
Question 2:
Code : Sélectionner tout - Visualiser dans une fenêtre à part <a href='{$bm/@url}'>{if (exists($bm/title/text())) then ($bm/title/text()) else ($bm/@url)}</a>
Je sèche sur cette question:
URL de l'XML http://www.fil.univ-lille1.fr/~caron.../bookmarks.xml
Définir une fonction qui transforme 1 noeud categorie passé en paramètre en 1 noeud div,tel que
Le nom de la catégorie apparaît en titre h3
La description est rangée dans un paragraphe
Puis, on affiche récursivement les sous-catégories et les bookmarks (cf question précédente)
J'ai commence par cela mais cela ne fonctionne pas
Merci pour votre aide,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 declare function local:sortie_categorie($cat as element(categorie)) as element(div){ element div { element h3 { $cat/@nom/text() }, element p { $cat/bokmark/decription/text() } } }; local:sortie_bookmarks(//bookmark[@url="http://www.lesite.org"])
Nikolas
Partager