Bases de Données XML : interrogation d'une base BaseX avec XQuery

Exercice supplémentaire

Question

Créer une fonction qui permet de connaître la profondeur d'un document et l'appliquer à l'exemple.

Indice

L'expression $e[not(child::*)] permet de savoir si un noeud $e n'a pas de noeuds fils.

Indice

fonction hauteur ( T : noeud) renvoie un entier

si T est vide

renvoyer 1

sinon

renvoyer 1 + max (hauteur ( FilsGauche(T)) , hauteur(FilsDroit(T) )

fin si

Solution

Solution

1
declare function local:profondeur($e as node()) as xs:integer
2
{
3
if ($e[not(child::*)]) then 1
4
else max(for $c in $e/* return local:profondeur($c)) + 1
5
};
6
7
local:profondeur(doc("DB_NAME/file_name.xml"))
PrécédentPrécédentFin
AccueilAccueilImprimerImprimer Vincent Keller, Alexandre Mertz, 2015-2016 (Contributions : Stéphane Crozat, les étudiants de l'UTC) Paternité - Partage des Conditions Initiales à l'IdentiqueRéalisé avec Scenari (nouvelle fenêtre)