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