Sortir d'une boucle ou...

Sortir d'une boucle ou... - XML/XSL - Programmation

Marsh Posté le 21-05-2008 à 09:21:07    

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 ! :hello:

Reply

Marsh Posté le 21-05-2008 à 09:21:07   

Reply

Marsh Posté le 22-05-2008 à 09:35:28    

Essermarth a écrit :

Bonjour,
...
 
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 ! :hello:


 
Je pense que tu peux faire un XPath comme ceci: CRITERES/Crit[@CLEF_CRITERE = '2000330'][1]


Message édité par avander le 22-05-2008 à 09:36:12
Reply

Marsh Posté le 22-05-2008 à 10:14:50    

Code :
  1. <xsl:for-each select="CRITERES/Crit"><!-- Pour chaque Crit -->
  2.   <xsl:if test="@CLEF_CRITERE = 2000330 and position() = 1">
  3.      <xsl:variable name="img"><xsl:value-of select="." /></xsl:variable>
  4.      <img src="http://{$img}" width="100" height="65" /><br/>
  5.   </xsl:if>
  6. </xsl:for-each>


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed