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 :

transformer un code XML en une interface HTML


Sujet :

XSL/XSLT/XPATH XML

  1. #21
    Débutant  
    Inscrit en
    Décembre 2008
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 163
    Points : 41
    Points
    41
    Par défaut
    voilà un premier affichage avec des combobox vides et les labels sont absents

    Nom : affichage.png
Affichages : 134
Taille : 1,8 Ko

  2. #22
    Membre actif
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Avril 2007
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 199
    Points : 297
    Points
    297
    Par défaut
    oui forcément ce n'est plus le même XML qu'au début.
    Pour que ce soit plus clair il faut que tu nous donnes chaque fois exactement quel XML et quel XSL tu utilises.

    Ici tu appelle dans ton XSL un attribut 'value' -> Où est-ce que tu vois un attribut value dans ton xml ?
    "Chuck Norris a déjà compté jusqu'à l'infini. Deux fois."

  3. #23
    Débutant  
    Inscrit en
    Décembre 2008
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 163
    Points : 41
    Points
    41
    Par défaut
    Bonjour Caballo,

    pour le "@value", c'est la valeur du label sinon concernant les codes, les voilà

    le XML

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    <?xml version="1.0"?>
    <?xml-stylesheet type="text/xsl" href="rt.xsl" ?>
    <cuimodel>
    <window >
    <div>
    <label id='label1'> searchPreference </label> 
    <label id='label12'> seeFirst </label> 
    <combobox id='CB1' name='criteriaCB'>
    <item> promotions </item>
    <item> bestrated </item>
    </combobox>
    </div>
     
    <div>
    <label id='label2'> mon </label> 
    <label id='label21'> second  </label> 
    <combobox id='CB2' name='DispLayout'>
    <item> GridLayout </item>
    <item> listlayout </item>
    </combobox>
    </div>
     
    <div>
    <label id='label13'> Preference </label> 
    <label id='label122'> see </label> 
    <combobox id='CB3' name='CT'>
    <item> HighContrast </item>
    <item> LowContrast </item>
    </combobox>
    </div>
     
    <button>cancel</button>
    <button>ok</button>
     
    </window>
    </cuimodel>
    le XSLT

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/cuimodel/window/div"> 
    <html> 
    <body> 
     
    <xsl:for-each select="label">
    <label>
    <xsl:value-of select="@value"/>
    </label>
     
    <select>
    <xsl:for-each select="../combobox">
    <option>
    <xsl:value-of select="item/@value"/>
    </option>
    </xsl:for-each>
    </select>
    </xsl:for-each>
    </xsl:for-each>
     </body> 
     </html>
    </xsl:template>
    </xsl:stylesheet>

  4. #24
    Membre actif
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Avril 2007
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 199
    Points : 297
    Points
    297
    Par défaut
    non @value ne veut pas dire valeur du label. @value veut dire qu'un noeud dans ton XML possède un attribut nommé "value". Est-ce le cas ? A priori non.

    Il faut absolument que tu regarde les bases du XSLT/XPATH. La on a l'impression que tu fait un peu au hasard.
    "Chuck Norris a déjà compté jusqu'à l'infini. Deux fois."

  5. #25
    Débutant  
    Inscrit en
    Décembre 2008
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 163
    Points : 41
    Points
    41
    Par défaut
    pas du tout Caballo,

    à la base voilà mon code,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <xsl:for-each select="label">
    <label>
    <xsl:value-of select="."/>
    </label>
    mais suite à la Suggestion de Tsuji, j'ai remplacé le "." par le "@value"

  6. #26
    Membre actif
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Avril 2007
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 199
    Points : 297
    Points
    297
    Par défaut
    et bien comme tu veux... bonne continuation et bonne chance !
    "Chuck Norris a déjà compté jusqu'à l'infini. Deux fois."

  7. #27
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    @thouraya24
    Voyons, caballo plutôt a raison d'être agacé...
    Il était une fois (avec les symbols ' déjà corrigés)
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <label id='label1' value='searchPreference'/> 
    <label id='label12' value='seeFirst'/>
    et maintenant vous écrivez
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <label id='label1'> searchPreference </label> 
    <label id='label12'> seeFirst </label>
    Ce ne sont plus la même chose. Le même pour combobox etc etc... Chaque fois on change la source xml, il faut s'adapter l'écriture dans xslt selon la source. Logique non?

    Comme je vois que vous vous êtes beaucoup égaré, je écris un simple rendement complet: comme ça, vous devrez avoir une référence pour retomber dessus et commencez à relire les documentations ou les tutos pour remplir les lacunes d'incompréhension. Il se peut qu'il ne correspond pas tout à fait à ce que vous voulez au final, au moins, vous avez quelque chose de "correct" pour recommencer la lecture et réécrire le xslt.
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="html" omit-xml-declaration="yes" indent="yes" encoding="iso-8859-1" />
    <xsl:template match="/">
        <html>
        <head>
        <title>quelque titre</title>
        </head>
        <body> 
            <xsl:apply-templates select="cuimodel/window/div" />
        </body> 
        </html>
    </xsl:template>
    <xsl:template match="/cuimodel/window/div"> 
        <xsl:for-each select="label">
            <label>
                <!-- xsl:value-of select="@value"/ -->
                <xsl:value-of select="."/>
            </label>
            <select>
                <!-- xsl:for-each select="../combobox" -->
                <xsl:for-each select="../combobox/item">
                    <option>
                        <!-- xsl:value-of select="item/@value"/ -->
                        <xsl:value-of select="."/>
                    </option>
                </xsl:for-each>
            </select>
        </xsl:for-each>
        <!-- /xsl:for-each -->
    </xsl:template>
    </xsl:stylesheet>

  8. #28
    Débutant  
    Inscrit en
    Décembre 2008
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 163
    Points : 41
    Points
    41
    Par défaut
    Bonjour Tsuji,

    je m'excuse de ne pas avoir collée le fichier XML suite à chaque changement. je vous remercie pour votre coup de main et je remercie également Thelvin et Caballo.

    merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Insérer un code xml dans une page html sans interprétation
    Par solenne74 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 01/07/2011, 14h56
  2. [XSL] comment transformer ce fichier xml en une table html ?
    Par jlassira dans le forum XSL/XSLT/XPATH
    Réponses: 17
    Dernier message: 15/03/2006, 12h15
  3. Inclure code XML dans une page HTML ?
    Par kpatoulu dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 24/10/2005, 14h59
  4. Insérer du XML dans une page HTML
    Par Shaman LizardKing dans le forum XML/XSL et SOAP
    Réponses: 14
    Dernier message: 04/05/2005, 07h27
  5. problème xsl : inclure une donnée xml dans une balise html
    Par djodjo dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 03/01/2003, 09h24

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