L'instruction :
<img src="<xsl:value-of select="image" />" />
génère une erreur a cause des guillemets.
Comment y remédier ?
Version imprimable
L'instruction :
<img src="<xsl:value-of select="image" />" />
génère une erreur a cause des guillemets.
Comment y remédier ?
Code:
1
2
3 <xsl:element name="img"> <xsl:attribute name="src"><xsl:value-of select="image"/></xsl:attribute> </xsl:element>
Merci, et pour une instruction de ce genre ? :
- Comment ecrire cette condition sans faute de syntaxe ?Code:
1
2
3
4
5
6
7 <xsl:for-each select="racine/pagination/page"> <td> <xsl:if test="racine/pagination/part = <xsl:value-of select="nr" />"> <a href="#"><xsl:value-of select="nr" /></a> </xsl:if> </td> </xsl:for-each>
- Dans la boucle comment puis-je faire pour acceder a l element qui se trouve à 'racine/pagination/part'
d abord si tu peux mettre un petit morceau de ton xml se serait bien...
ensuite est ce que dans
nr est la valeur d un noeud ou la chaine de caractere 'nr'?Code:<xsl:value-of select="nr" />
si c est un noeud ...met du xml histoire de le situer
voici mon fichier .xml
Code:
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
37
38
39
40
41
42
43
44
45
46
47 <?xml version="1.0" encoding="iso-8859-1"?> <?xml-stylesheet type="text/xsl" href="index.xsl"?> <racine> <pagination> <part>1</part> <page> <nr>1</nr> </page> <page> <nr>2</nr> </page> <page> <nr>3</nr> </page> </pagination> <nouveaute> <id>2</id> <date>26-06-05</date> <image>images/mini/IMG_1.jpg</image> <titre>Soirée Kozzmozz le 2 juillet au Vooruit à Gand</titre> <texte> En attendant impatiemment son dixième anniversaire qui se déroulera le 10 septembre dans quatre salles du gigantesque Vooruit de Gand, la Kozzmozz organise entre temps plusieurs soirées, notamment ce samedi 2 juillet 2005 ! Les résidents kozz et t-quest seront bien évidemment de la partie ainsi que dautres djs venus du monde entier : La néerlandaise Shinedoe, le new-yorkais Tony Rohr avec un set teinté de minimal, sans oublier lespagnol Paco Osuma véritable figure emblématique des soirées cocoon à Ibiza !! Paco Osuna (Cocoon, Smack Rec / ESP) Tony Rohr "live" (Hidden Agenda / NY) Shinedoe (Intacto Rec / NL) T-Quest (Kozzmozz, Fuse, Music Man Rec) Kozz (Kozzmozz Resident) De 23h à 6h Préventes : 12,5 Sur place : 15 Vooruit (Gand) </texte> </nouveaute> <nouveaute> <id>3</id> <date>19-07-05</date> <image>images/mini/IMG_1.jpg</image> <titre>n8-crew Priv8 : soirée plus que réussie grâce à vous !</titre> <texte> Après cette fabuleuse soirée, quoi de plus normal de vous remercier tous pour cette fabuleuse ambiance ! Vous avez répondu nombreux aux invitations à cette soirée dinauguration de n8-crew qui nous tenait très à cur. Des semaines de préparations pour un résultat plus que satisfaisant et une immense satisfaction quant à vos appréciations bien souvent très positives ! Un immense Merci de la part de toute léquipe de n8-crew. Peut-être bientôt une n8-crew priv8 #2 affaire à suivre </texte> </nouveaute> </racine>
Salut,
Afin d'éviter se genre d'erreur à l'avenir:
une balise ne peu pas contenir un balise ( ex: <toto id="<erreur/>">)
Les balises doivent avoir une balises fermante en XML (ex: <toto/> ou <toto></toto>)
et elle ne peuvent pas ce chevaucher (ex: <lapin><lapine> </lapin></lapine>)
Pour ton problème
tu te trouve dans ton noeud racine/pagination/page avec la boucle for-each donc si je comprend bien il contient "part " et tu aimerais testé si il corespond a nr !
Mais ou est nr ? poste le bout de ton xml histoire de comprendre
Merci
++
Thierry
http://www.developpez.net/forums/vie...ttribut+valeur
et
Code:
1
2
3
4
5
6
7
8 <xsl:for-each select="racine/pagination/page"> <td> <xsl:if test="current()/../part = nr" /> <a href="#"><xsl:value-of select="nr" /></a> </xsl:if> </td> </xsl:for-each>
jette un coups d'oeil ici pour l'element current() et les boucles http://erwy.developpez.com/boucle/
et ici pour les tests
http://erwy.developpez.com/tuto_xslt/conditions/
Ca ne nous dit pas ou est nr et part que tu veux comparer????
explique nous exactement ce que tu veux faire?
je ne suis pas sur que ce soit paren:: je ne suis pas encore assez rodé sur les axesCode:
1
2
3
4
5
6
7 <xsl:for-each select="racine/pagination/page"> <td> <xsl:if test="parent::part = nr"> <a href="#"><xsl:value-of select="nr" /></a> </xsl:if> </td> </xsl:for-each>
.. est un raccourci pour parent::* (que j'utilise bien)Citation:
Envoyé par tiscars
par contre une erreur
veut dire le pere du noeud courant SI il s'appelle part or part n'est pas parent mais frere de page ou autre fils du pere de pageCode:parent::part
Il est juste au dessus !Citation:
Envoyé par virgul
j'aimerais tester si le nr qui se trouve dans racine/pagination/page est egale ou non a part qui se trouve dans racine/pagination/part
Code:
1
2
3
4
5
6
7
8
9
10
11 <xsl:for-each select="racine/pagination/page"> <td> <xsl:when test="nr != <xsl:value-of select="part">"> <a href="#"><xsl:value-of select="nr" /></a> </xsl:when> <xsl:otherwise> <xsl:value-of select="nr" /> </xsl:otherwise> </td> <td>|</td> </xsl:for-each>
voir mon code et les liens que je donne.
Tu as serieusement besoin de bosser les bases du xslt et de xpath
...j ai ecrit juste au dessus
Ne génere bien aucune erreur mais la conditionCode:
1
2
3
4
5
6
7
8 <xsl:choose> <xsl:when test="parent::part != current()/nr"> <a href="#"><xsl:value-of select="nr" /></a> </xsl:when> <xsl:otherwise> <xsl:value-of select="nr" /> </xsl:otherwise> </xsl:choose>
teste toujours la meme valeur de part.Code:<xsl:when test="parent::part != current()/nr">
Dans ma page, il ne m affiche aucun lien alors que :
Il devrait afficher les lien sur les page 1 et 3.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 <pagination> <premier>1</premier> <precedent>1</precedent> <part>2</part> <suivant>3</suivant> <dernier>3</dernier> <page> <nr>1</nr> </page> <page> <nr>2</nr> </page> <page> <nr>3</nr> </page> </pagination>
Bon on va arreter les conneries 5 mn
merci
si tu es dans la boucle
Code:<xsl:for-each select="racine/pagination/page">
est MAUVAIS et regarde mon code.Autrement precise ta boucleCode:<xsl:when test="parent::part != current()/nr">
es tu sur de cette ligne? car <page> est le noeud courant..Citation:
Envoyé par Erwy
*edit*
j ai dit une grosse c...
pardon Erwy
1000 excuses j'avais pas vu ton post avec les liens.Citation:
Envoyé par Erwy
Encore désolé !
Tu viens d'echapper de justesse à la shlag :twisted: :wink:Citation:
Envoyé par tiscars
Tu n'etais pas le seul :roll: , cela ne s'adressait pas qu'a toi :wink:Citation:
Envoyé par ToxiZz
Voila c est resolu voila le code finale :
Donc je n'avais meme pas besoin de faire réference a la methode current().Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <xsl:for-each select="racine/pagination/page"> <td> <xsl:choose> <xsl:when test="nr != ../part"> <a href="#"><xsl:value-of select="nr" /></a> </xsl:when> <xsl:otherwise> <xsl:value-of select="nr" /> </xsl:otherwise> </xsl:choose> </td> <td>|</td> </xsl:for-each>
Encore une petite question, si j'ai bien compris comment marchais les attribute, le code suivant devrait etre correcte :
ou memeCode:
1
2
3
4
5 <xsl:element name="a"> <xsl:attribute name="href"> <xsl:value-of select="racine/pagination/precedent" /> </xsl:attribute> </xsl:element>
Mais rien ne s'affiche :?Code:
1
2
3
4
5 <a> <xsl:attribute name="href"> <xsl:value-of select="racine/pagination/precedent" /> </xsl:attribute> </a>