Cours PDF Le langage XSLT Transformation de fichiers XML, tutoriel & guide de travaux pratiques en pdf.
Modèle d’exécution
L’évaluation d’un template se fait à partir d’un noeud contexte. Le noeud contexte initial est le nœud racine
À partir d’un nœud contexte, l’évaluation se déroule de la manière suivante: − on cherche le template ayant le modèle de chemin le plus précis et qui matche le nœud contexte − on instancie le template retenu à l’étape précédente. La transformation peut créer un fragment du document résultat (en insérant du texte dans le flot de sortie) et instantier de nouveaux templates. L’évaluation continue ensuite récursivement. Un ensemble de nœud est évalué en prenant chacun des nœuds de l’ensemble comme nœud contexte puis en concaténant les résultats obtenus.
Règles prédéfinies (= par défaut)
Les règles prédéfinies s’appliquent en l’absence de règles applicables définies dans la feuille de style. Elles ont une priorité plus faible que celles-ci.
Exemple: pour les nœuds racine et éléments on poursuit le traitement sur les nœuds fils du nœud contexte : <xsl:template match= « *|/ »> <xsl:apply-templates/> </xsl:template> Exemple: pour les nœuds textes et attributs on recopie leurs valeurs dans le flot de sortie : <xsl:template match= « text()|@* »> <xsl:value-of select= ». »/> </xsl:template>
Balise template
Cet élément définit un modèle à appliquer à un nœud et à un contexte spécifiques. Utilisation : <xsl:template name= »nomModele » match= »expressionXPath » mode= »nomMode »> </xsl:template> • name : associe un nom au modèle (optionnel) • match : indique quel nodeset sera affecté par le modèle (obligatoire) • mode : permet à un même élément d’avoir plusieurs modèles, selon le contexte (optionnel) • priority : utilisé en cas de conflit entre deux règles ayant la même condition (optionnel).
Un Premier Exemple
Application d’une feuille de style XSL à un document XML pour l’afficher dans un navigateur web : 1/ instruction de traitement dans le fichier XML <?xml-stylesheet type= »text/xsl » href= »wg.xsl »?> 2/ choix d’un noeud de départ dans la feuille de style <xsl:template match= »/ »> 3/ balise de base <xsl:value-of select = « expressionXPath »/>