Bonjour aux spécialistes du XML / XSLT.
Dans un fichier XML j'ai des listes de messages de discusions de forum où les messages de chaque fil de discussion sont classés en ordre chronologique; j'ai pour chaque message son ID et l'id de son PARENT.
exemple:
ID PARENT
01 0
02 01
03 02
04 01
05 03
06 01
07 02
...
Comment puis-je, en langage XSL, parcourir ma liste de messages et la ré-organiser pour pouvoir afficher au mieux le fil de la discussion, comme ceci:
01 (message initial)
02 (répond à 01)
03 (répond à 02)
05 (répond à 03)
07 (répond à 02)
04 (répond à 01)
06 (répond à 01)
J'ajouterais également des indentations pour les niveaux de réponses.
Je saurais faire ça en PHP, avec des boucles et des tableaux, mais en XSL je suis démuni. Toute aide sera la bienvenue (même si on me dit que ce n'est pas possible!).
Merci d'avance.
Bonjour!

Tout algorithme imaginable avec un système formel donné est possible en XSLT, puisque XSLT est une machine de Turing complète. J'ai d'ailleurs été confronté à la même tâche voici quelques années, et avec un peu de méthode ce n'est pas très compliqué à réaliser.

Cependant, il est difficile de répondre à ton cas tel que tu le présentes, car le code à écrire dépend très fortement:
1. de la structure de ton fichier XML initial
2. de la manière dont tu veux coder la sortie. En HTML? Si oui, quel est le code HTML que tu vises?
En effet, XSLT étant un langage de transformation, il faut préciser d'où tu pars (le XML) et où tu veux arriver (le HTML). Sinon, c'est comme si tu nous demandais: "Quel est le meilleur chemin entre deux villes?" sans préciser les villes Smiley cligne

Pourrais-tu donner plus de détails?
Modifié par Gilles (30 Jan 2009 - 09:31)