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 :

[Débutant] Remplacer attribut src


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Invité
    Invité(e)
    Par défaut [Débutant] Remplacer attribut src
    Bonjour.

    Dans mon document XSL (qui construit une page XHTML à partir d'un XML), je souhaite remplacer l'attribut src d'une balise img par la valeur de l'élément src de mon XML (cf. structure ci-dessous).

    Comment puis-je m'y prendre ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <catalog>
      <element>
        <title>Element 1</title>
        <src>images/1.png</src>
      </element>
      <element>
      ....
    </catalog>
    Merci.

  2. #2
    Membre actif
    Avatar de VforVincent
    Homme Profil pro
    Doctorant (EPUB 3.0)
    Inscrit en
    Avril 2011
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Doctorant (EPUB 3.0)
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 115
    Points : 265
    Points
    265
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <xsl:template match="src">
    <xsl:element name="image">
    <xsl:attribut name="src">
    <xsl:value-of select="."/>
    </xsl:attribut>
    </xsl:element>
    </xsl:template>
    Quelque chose comme ça devrait te convenir.

  3. #3
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 566
    Points : 21 635
    Points
    21 635
    Par défaut
    Oui, mais il y a plus simple, pour ressembler plus à du HTML :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <xsl:template match="src">
      <img src="{.}"/>
    </xsl:template>
    (Note: en HTML<5, il est bien vu de toujours mettre l'attribut alt aux images. Dans le cas présent, vu que l'image semble entièrement décrite avec le texte alentour, je suppose qu'il suffit de le laisser vide : alt="")

  4. #4
    Membre actif
    Avatar de VforVincent
    Homme Profil pro
    Doctorant (EPUB 3.0)
    Inscrit en
    Avril 2011
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Doctorant (EPUB 3.0)
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 115
    Points : 265
    Points
    265
    Par défaut
    Oui évidemment on peut simplifier ce que je propose

    Je n'ai pas d'argumentation pour dire que mon code est plus propre ou je ne sais quel qualificatif pour me défendre, donc mieux vaut prendre le tien !

    Quoique, je crois qu'une fois, j'avais été embêté, parce que le nom de l'élément variait (span ou div) selon une variable et que :

    n'est pas possible, mais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:element name="{$var}"></xsl:element>
    l'est.

    J'ai bon hein ?!

  5. #5
    Invité
    Invité(e)
    Par défaut
    Parfait merci !
    Les deux codes me sont très utiles pour bien intégrer le fonctionnement du XSL.

  6. #6
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 566
    Points : 21 635
    Points
    21 635
    Par défaut
    Citation Envoyé par VforVincent Voir le message
    J'ai bon hein ?!
    Oui. Mais ça c'est quand les balises ou les attributs eux-mêmes sont dynamiques. Quand seul leur contenu l'est, la forme compacte est quand même plus simple.

  7. #7
    Membre actif
    Avatar de VforVincent
    Homme Profil pro
    Doctorant (EPUB 3.0)
    Inscrit en
    Avril 2011
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Doctorant (EPUB 3.0)
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 115
    Points : 265
    Points
    265
    Par défaut
    Ok kéraunos.

    thelvin : Bien d'accord avec toi. Mais bon, ça a permis de discuter un peu des deux utilisations

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

Discussions similaires

  1. Débutant: Remplacer #ref! par 0 dans mon fichier xls
    Par billy78 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 11/06/2007, 15h41
  2. [XSLT]ecrire dans un attribut src
    Par d4v1d dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 15/05/2007, 18h39
  3. [Débutant] Nouvelle attribution de valeur ??
    Par BBoys85 dans le forum Access
    Réponses: 9
    Dernier message: 27/06/2006, 15h03
  4. [Débutant] Doute: attributs multivaleurs
    Par Paulinho dans le forum Langage SQL
    Réponses: 6
    Dernier message: 26/11/2005, 22h24
  5. [Débutante] Remplacer la balise marquee ?
    Par silversky dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 13/09/2005, 17h28

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