voilà un premier affichage avec des combobox vides et les labels sont absents
voilà un premier affichage avec des combobox vides et les labels sont absents
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."
Bonjour Caballo,
pour le "@value", c'est la valeur du label sinon concernant les codes, les voilà
le XML
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
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>
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>
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."
pas du tout Caballo,
à la base voilà mon code,
mais suite à la Suggestion de Tsuji, j'ai remplacé le "." par le "@value"
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>
et bien comme tu veux... bonne continuation et bonne chance !
"Chuck Norris a déjà compté jusqu'à l'infini. Deux fois."
@thouraya24
Voyons, caballo plutôt a raison d'être agacé...
Il était une fois (avec les symbols ' déjà corrigés)
et maintenant vous écrivez
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <label id='label1' value='searchPreference'/> <label id='label12' value='seeFirst'/>
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?
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <label id='label1'> searchPreference </label> <label id='label12'> seeFirst </label>
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>
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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager