IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XSL/XSLT/XPATH XML Discussion :

Problème affichage boucle for-each [XSLT 1.0]


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2011
    Messages : 3
    Par défaut Problème affichage boucle for-each
    Bonjour,

    Je bloque bêtement sur un cas de personnalisation d'une fiche produit.
    A partir d'un catalogue (exemple ci-dessous), j'ai besoin de personnaliser une partie "pictos". Chaque produit défini pouvant avoir de 0 à n pictos.


    Fichier XML contenant le catalogue des produits :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <PRODUIT>
    	<EAN>IdProduit</EAN>
    	<LIBELLE>LIBELLE DU PRODUIT</LIBELLE>
    	<DESCRIPTION>Description du produit,<br />avec balises html.</DESCRIPTION>
    	<IMAGE_PRIX HAUTEUR="130" LARGEUR="130">http://site.domaine.ext/Media/catalogue/prix/image_prix.png</IMAGE_PRIX>
    	<IMAGE_PRODUIT HAUTEUR="280" LARGEUR="199">http://site.domaine.ext/Media/catalogue/prix/image_produit.png</IMAGE_PRODUIT>
    	<ALT_IMAGE_PRODUIT>texte alternatif à l'image produit</ALT_IMAGE_PRODUIT>
    	<PICTOS>
    		<IMAGE_PICTO HAUTEUR="60" LARGEUR="55">http://site.domaine.ext/Media/catalogue/pictos/image_picto1.png</IMAGE_PICTO>
    		<IMAGE_PICTO HAUTEUR="60" LARGEUR="60">http://site.domaine.ext/Media/catalogue/pictos/image_picto2.png</IMAGE_PICTO>
    	</PICTOS>
    </PRODUIT>

    Mise en page des pictos produits : affichage de 0 à n Pictos selon le produit sélectionné. Le principe étant de construire les pictos sous forme d'une balise image qui est constituée de plusieurs variables de la fiche produit (src, largeur, hauteur).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <xsl:for-each select="$Catalog/PRODUITS/PRODUIT[EAN=$product]/PICTOS/IMAGE_PICTO">  
             <img alt="" border="0">
              <xsl:attribute name="src">
                <xsl:value-of select="$Catalog/PRODUITS/PRODUIT[EAN=$product]/PICTOS/IMAGE_PICTO/text()" />
              </xsl:attribute>
              <xsl:attribute name="width">
             	  <xsl:value-of select="$Catalog/PRODUITS/PRODUIT[EAN=$product]/PICTOS/IMAGE_PICTO/@LARGEUR" />
              </xsl:attribute>
              <xsl:attribute name="height">
             	  <xsl:value-of select="$Catalog/PRODUITS/PRODUIT[EAN=$product]/PICTOS/IMAGE_PICTO/@HAUTEUR" />
              </xsl:attribute>
             </img> 
        </xsl:for-each>

    Problème :
    Pour le cas où j'ai 2 pictos pour un produit, la mise en page m'affiche pictos, mais c'est 2 fois le même !
    En l'occurrence 2 fois la ligne 1 avec image_picto1.png

    Quelqu'un à une idée ?
    D'avance merci

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    C'est parce que tu passes ton temps à retourner chercher la première $Catalog/PRODUITS/PRODUIT[EAN=$product]/PICTOS/IMAGE_PICTO de ta variable $Catalog. Puisque tu demandes toujours la même chose il n'y a pas de raison que tu obtiennes quelque chose de différent.

    Ton for-each a déjà séléctionné un IMAGE_PICTO, il n'y a donc pas besoin de recommencer. Prends juste text(), @HAUTEUR et @LARGEUR.

    Example :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img src="{text()}" height="{@HAUTEUR}" alt="" border="0">
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2011
    Messages : 3
    Par défaut
    Effectivement !
    merci !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème sur une boucle For Each
    Par nanoo79 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 27/11/2014, 09h14
  2. [XL-2007] Boucles For Each Next: problème de défilement des feuilles avec lenteur d'exécution
    Par camelia.w dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 24/12/2011, 20h08
  3. Problème de soustraction dans Boucle For each
    Par athos7776 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/04/2011, 05h46
  4. [XML-XPATH] Problème dans un for each
    Par stailer dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 26/12/2005, 12h11
  5. Boucle For each
    Par roots_man dans le forum ASP
    Réponses: 10
    Dernier message: 18/02/2005, 09h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo