Je rencontre un problème avec les variables XSL. Je sais qu'une fois déclarée, la valeur de la variable ne peut pas être changée.Modifier la valeur de la variable dans xsl
Mais je suis confronté à un problème plutôt étrange et je ne peux pas changer la sortie XML, à la place comprendre si c'est possible avec XSL lui-même. J'utilise xsl: for-each pour faire une boucle sur certaines données dans le fichier .xml.
Les données peuvent être bouclées de trois types, disent Type1, Type2 et Type3
S'il est Type1, j'appelle un modèle pour traiter ces données. À l'intérieur du modèle, j'affiche un en-tête. J'ai besoin d'imprimer cet en-tête pour la première fois que je rencontre ces données Type1 seulement. Après cela, je n'ai pas besoin de l'afficher.
J'aurais pu transmettre un paramètre avec le modèle d'appel et l'initialiser/annuler pour déterminer si j'avais besoin d'imprimer le texte de l'en-tête. Mais si je comprends bien, étant un langage de mise en forme, l'état de la variable n'est pas conservé.
Pouvez-vous s'il vous plaît fournir vos précieuses suggestions sur la façon de mettre en œuvre cela (éventuellement sans modifications xml)?
Edit:
Le test fonctionnera pour la sortie XML mentionné par Patrice. Mais mon XML est différent.
<doc>
<item>foobar</item>
<item>foo</item>
<item>bar</item>
<item>baz</item>
<item>foo</item>
<item>bar</item>
</doc>
De ce XML, j'ai besoin d'afficher un en-tête pour la toute première fois qu'il rencontre 'foo'. L'ordre des articles pourrait être n'importe quoi aussi. Je ne peux pas prédire exactement quand 'foo' apparaîtra dans le XML.
Pouvez-vous s'il vous plaît apporter des suggestions?
S'il vous plaît poster quelques de votre code afin que nous puissions vous aider. –