Bonjour,
Je cherche depuis un bon moment la solution au problème suivant :
Soit l’extrait d’un fichier XML suivant (ce n’est pas moi qui le génère et je ne peux pas le modifier) :
- <sit_fiche>
<PRODUIT>316000490</PRODUIT>
<ADRESSE>316011189</ADRESSE>
- <CRITERES>
<Crit CLEF_CRITERE="2000022" CLEF_MODA="1000230" />
- <Crit CLEF_CRITERE="2000330" CLEF_MODA="2001374">
<![CDATA[ url d’une image
]]>
</Crit>
- <Crit CLEF_CRITERE="2000330" CLEF_MODA="2035374">
<![CDATA[ url d’une autre image
]]>
</Crit>
<Crit CLEF_CRITERE="2000522" CLEF_MODA="1045230" />
</CRITERES>
</sit_fiche>
J'arrive parfaitement à récupérer l'ensemble des images et à les afficher :
<xsl:for-each select="CRITERES/Crit"><!-- Pour chaque Crit -->
<xsl:if test="@CLEF_CRITERE = 2000330"> <!-- Si on a le critère correspondant... -->
<xsl:variable name="img"><xsl:value-of select="." /></xsl:variable>
<img src="http://{$img}" width="100" height="65" /><br/>
</xsl:if>
</xsl:for-each>
Mais je n'arrive pas à récupérer uniquement la première image :
- Je ne peux pas utiliser position() car le nombre de critères avant et après les images est variable
- Le nombre d'images est variable (0 à 6)
- CLEF_CRITERE d'une image est 2000330
- Je ne sais pas les valeurs que peu prendre CLEF_MODA
Si qqun a une idée il me retire une fière chandelle du pied !