50 likes | 199 Views
Itération n fois Récursion terminale Itération Piez Variante : compter les occurrences d'un caractère dans une chaîne. Pour rendre la récursion terminale, ajouter un paramètre qui contient le résultat partiel. Trouver le noeud minimal Variante : trouver le noeud dont la valeur est minimale.
E N D
Itération n fois Récursion terminale Itération Piez Variante : compter les occurrences d'un caractère dans une chaîne. Pour rendre la récursion terminale, ajouter un paramètre qui contient le résultat partiel. Trouver le noeud minimal Variante : trouver le noeud dont la valeur est minimale
Fonction à plusieurs résultats Placer les résultats dans un arbre Exemple. Diviser une chaîne de caractères en trois parties : avant, pendant et après un caractère séparateur Renuméroter un ensemble de noeuds Exemple d'utilisation de xsl:attribute Déterminer si deux noeuds sont égaux count($a) = count($a | $b) count($a | $b) = 1 generate-id($a) = generate-id($b) Exemple : trouver la position d'un noeud dans un ensemble
Construire un ensemble de noeuds dont les valeurs sont toutes différentes Avec preceding-sibling ou preceding : ville[not(region=preceding-sibling::ville/region)] Avec xsl:key : <xsl:key name="choix" match="ville" use="region"/> ville[generate-id()=generate-id(key("choix",region)[1])] ville[generate-id()=generate-id(key("choix",region))] Exemple : classer des noeuds par groupes suivant un critère Décider si un noeud appartient à un ensemble count($a | $E) = count($E)
Reconnaître un élément par son nom Si l'élément possède un espace de noms, il faut déclarer celui-ci dans le programme XSLT Même si l'espace de noms est par défaut dans le source, le déclarer avec un préfixe dans le programme XSLT Clé sur un document extérieur Ecrire le nom d'un attribut dont on connaît la valeur
Créer des ancres HTML Avec une clé : <a name="#{generate-id(key(nom,valeur))}"> <a href="#{generate-id(key(nom,valeur))}"> En distinguant noeud courant et noeud contexte : <a name="#{generate-id(./Lieu)}"> <a href="#{generate-id(/Saison/Adresse/Lieu [.=current()/Lieu])}"> Reconstituer la hiérarchie d'un document aplati en fonction des positions relatives des noeuds <xsl:key name="fils" match="..." use="generate-id(..)"/>