Série XSL : Petite synthèse des billets passés (2)
J’avais lancé une première salve de billets sur XSL qui s’est arrêtée début février avec un premier récapitulatif.
Après un mois, début mars, j’ai commencé une deuxième salve de six billets, et je pense utile de m’interrompre de nouveau, pour nous laisser à tous le temps de souffler. Ceux qui y sont intéressés pourront ainsi y revenir, et les autres trouveront salutaire que je parle un peu d’autre chose. Quant à moi, ces billets ne sont pas les plus rapides à écrire, et en ce moment je manque beaucoup de temps.
Donc après ce récapitulatif de la seconde série, je pense faire une pause un peu plus longue que la précédente. Parce que voilà, quand même.
La première série comportait (sans forcément de logique ni de méthode) les principes de base pour arriver à produire une feuille XSL correcte.
Résumé des billets du mois de mars
La seconde série contenait les fonctions indispensables pour arriver à exploiter un fichier XML de manière intéressante, à savoir :
- la production systématique de fichiers HTML pour avoir une mise en forme correcte (lisible) en sortie
- l’utilisation d’opérations mathématiques (divisions, multiplications) pour exploiter des données chiffrées,
- avec mise en forme possible des résultats de ces opérations (en particulier indication du nombre de décimales)
- le choix d’un critère de tri pour afficher une liste de résultats
- les filtres pour ne traiter que certains éléments correspondants à certains critères (utilisation des crochets [] dans la définition d’un ensemble de nœuds) : cet aspect essentiel a fait l’objet d’un second billet.
- la première utilisation d’une variable dans une feuille XSL.
Au passage, vous avez pu voir aussi différentes fonctions :
- la fonction contains() permettant de choisir un ensemble de noeuds contenant une chaîne de caractères.
- la fonction position() qui indique la place d’un nœud dans une liste produite par la feuille XSL.
- la fonction not() qui peut inverser le résultat vrai ou faux d’une autre fonction.
Et les manières d’écrire les caractères &, < et > quand ils servent à autre chose qu’à écrire des balises dans le fichier XSL.
Les aspects fondamentaux dont je n’ai pas eu le temps de parler
Je n’avance pas dans mes billets dans un ordre de manuel pour XSL. J’essaie d’avancer par ordre d’importance, au regard de mes besoins effectifs quand j’utilise ce langage, afin de vous parler d’abord de ce qui me sert le plus souvent.
Or, dans ce qui me sert le plus souvent :
- j’ai encore trop peu parlé des variables (balise <xsl:variable>)
- je n’ai pas du tout parlé
- de la balise <xsl:if> qui permet d’exprimer une condition pour effectuer une action
- des balises <xsl:choose>, <xsl:when> et <xsl:otherwise> qui vont de pair et permettent de faire des alternatives
- des espaces de noms (ou namespaces)
- et je n’ai pas non plus expliqué comment, assez souvent, il m’arrive de générer un fichier XML à partir d’un tableau Excel, en utilisant le publipostage dans Word.
- Et pour les fonctions, je ne vous ai encore pas parlé de :
- substring()
- substring-before() et substring-after()
- starts-with()
- concat()
Enfin, il est évident que mes fichiers XSL permettent de manipuler des fichiers XML structurés en notices (avec une structure identique et répétée de champs). Mais que pour l’instant, en vous contentant de cela, vous ne pourriez pas transformer un fichier DocBook ou TEI (càd des fichiers contenant des textes, des articles, des livres ou des poèmes) en pages HTML.
Conclusion
Bref, pour les plus pressés, voici déjà quelques pistes pour continuer vous-mêmes.
Pour les autres, il vous faudra attendre mais vous voyez déjà s’esquisser un programme.
Et pour ceux qui s’en foutent, tant mieux pour eux, nous nous reverrons bientôt sur d’autres sujets
Enfin, n’hésitez pas à m’interpeller
- si vous bloquez sur un billet ou sur un exercice
- si vous essayez d’appliquer leur contenu pour vos usages locaux mais que vous rencontrez des blocages incompréhensibles dans la transformation de vos fichiers XML.
- si vous vous ennuyez et que vous cherchez une oreille attentive
Pour cela, j’aurais vivement tendance à vous recommander d’utiliser Google Wave, particulièrement approprié pour des échanges courts et suivis (le suivi d’une discussion de ce genre est plus facile à faire sur Google Wave que sur une messagerie).
Si vous n’avez pas de compte GWave :
- je peux vous envoyer une invitation
- je suis encore capable d’utiliser ma messagerie