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>


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box, and replicate and expand beyond their wildest dreams by throwing away the limits imposed by overbearing genetic r
Reply

Sujets relatifs:

Leave a Replay

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