J'essaye de trier un document XML en utilisant XSLT, et je veux garder les commentaires. Jusqu'ici tout va bien, car il y a déjà quelques réponses à cette question (voir connexe ..). Mais! aucune de ces réponses (excellent) se rapportent à un fichier XML qui ressemble à ceci:Trier XML en utilisant XSLT, tout en gardant plusieurs commentaires
<xml>
<beatles>
<!-- comment(1): john is actually my favourite -->
<!-- comment(2): John died tragically in 1980 -->
<beatle name="John"/>
<beatle name="Ringo"/>
<beatle name="George"/>
<!-- comment(1): Paul still does live concerts to this day -->
<!-- comment(2): contrary to common folklore, Paul is NOT dead! -->
<beatle name="Paul"/>
</beatles>
</xml>
Qu'est-ce qui se passe maintenant? Je veux trier les Beatles (Que Dieu bénisse les) par nom, et aussi garder tous les commentaires de chaque Beatle en place, afin d'obtenir ce résultat:
<xml>
<beatles>
<beatle name="George"/>
<!-- comment(1): john is actually my favourite -->
<!-- comment(2): John died tragically in 1980 -->
<beatle name="John"/>
<!-- comment(1): Paul still does live concerts to this day -->
<!-- comment(2): contrary to common folklore, Paul is NOT dead! -->
<beatle name="Paul"/>
<beatle name="Ringo"/>
</beatles>
</xml>
Bonne vieille preceding-sibling :: commentaire () [1] ne fonctionnera pas ici. Dans le code normal, je ferais simplement une boucle inverse sur tous les commentaires précédents, et je m'arrêterais quand j'atteindrais un nœud sans commentaire; mais comme nous le savons tous, de XSLT pour chaque ne peut pas être échappé.
Des pensées?
TIA!
DF.
Bonne question, +1. Je pense que @ Tim-C vous a donné la réponse parfaite. –