bonjour voici mon xslt:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="dataStore">
<xsl:for-each select="activites/item/partenairesTEST/item">
<xsl:variable name="v" select="count(preceding-sibling::item)+1"/>
<xsl:value-of select="$v"/>	
<xsl:value-of select="../../../../partenaires/item[position()=$v]/nom"/>
<xsl:value-of select="../../../../partenaires/item[position()=count(preceding-sibling::item)+1]/nom"/>
<xsl:element name="br"/> 
</xsl:for-each>	
</xsl:template>
</xsl:stylesheet>
appliqué sur le fichier xml, cela donne ceci:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
1p1p1
2p2p1
3p3p1
1p1p1
2p2p1
3p3p1
1p1p1
2p2p1
3p3p1
quand j'utilise la variable $v définie, cela me renvoie le bon résultat;
quand j'utilise la définition de la variable, cela ne me renvoie pas le bon résultat (et cela me renvoie d'office p1) car le count renvoie 0 (et non pas 0, 1 puis 2)

le souci est que dois utiliser dans l'ETL Talend la requête XPath, sans variable (je n'ai pas trouvé dans le composant tFileInputMSXML comment en utiliser une)

merci