Messieurs Dames, bien le bonjour.

Je viens de rencontrer un problème sur une génération de fichier à partir de XSL, sachant que je ne peux pas influer sur la structure des données (je le regrette... )

Bref, après avoir tourné mon problème dans tous les sens, ma solution serait de pouvoir appliquer un filtre que je construit sur une liste de nœuds.
Reste à savoir si c'est possible, et c'est là que vous intervenez !

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
<xsl:template name="MonTemplate">
	<xsl:param name="laReference"/>
	<xsl:param name="laRupture"/>
 
	<xsl:variable name="lOrdreMax" select="$laRupture/vol_ordre"/>
	<xsl:variable name="leFiltre">
		<xsl:for-each select="/ruptures">
			<xsl:if test="./vol_ordre &lt;= $lOrdreMax">
				<xsl:variable name="laClef" select="./vol_clef"/>
				[<xsl:value-of select="$laClef"/>='<xsl:value-of select="$laReference/*[name() = $laClef]"/>']
			</xsl:if>
		</xsl:for-each>
	</xsl:variable>
	<xsl:variable name="lesLignes" select="$lignes $leFiltre" />
	<xsl:value-of select="$lesLignes"/>
(...)
</xsl:template>
Synthèse :
La variable "leFiltre" est construite dynamiquement et ressemble à
Code : Sélectionner tout - Visualiser dans une fenêtre à part
[champ1=truc][champ2=machin]
avec un nombre de critères dynamique.
Mon souci : filtrer les nœuds compris dans "$lignes" (déclaré ailleurs) suivant ce filtre (j'ai mis n'importe quoi dans le code ci-dessus...).

Mes questions :
Est-ce possible ?
Si oui, comment ?

Merci pour toute piste de résolution et bonne journée à vous.

G.