Bonjour, dans mon fichier .xml j ai des champs du style :
Comment précisez dans le .xsl qu'il ai a la ligne chaque fois qu'il rencontre un <br /> ???Code:
1
2 <texte>blablabla <br /> blablabla
Version imprimable
Bonjour, dans mon fichier .xml j ai des champs du style :
Comment précisez dans le .xsl qu'il ai a la ligne chaque fois qu'il rencontre un <br /> ???Code:
1
2 <texte>blablabla <br /> blablabla
Bonjour,
qu'appelles-tu "aller à la ligne" ?
La sortie de ta transformation est-elle du texte, du xml, du HTML ?
la sortie se fait en html, et quand je dis aller a la ligne.
C est en fait que comme on ne peux pas mettre de html dans un fichier xml, comme faire pour que le xsl l'interprete comme une balise html <br /> ?
Si je comprends bien, les balises <br /> ne se retrouvent pas dans ton HTML de sortie ? Cela doit venir de la façon dont tu as écrit tes templates, sans doute en utilisant un xsl:value-of qui ne renvoit que le texte de l'élément. Cela devrait plutôt ressembler à ceci :
Code:
1
2
3
4
5 <xsl:template match="texte"> <p> <xsl:copy-of select="text()|br"/> </p> </xsl:template>
Voia ce que j'ai fait (j'ai appris hier, le xsl...)
Mais ce ne marche pas.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 <xsl:template match="texte"> <p> <xsl:copy-of select="text()|br"/> </p> </xsl:template> <xsl:template match="/"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/> </head> <body> <xsl:apply-templates select="texte" /> </body> </html> </xsl:template>
Il va falloir perséverer ! :wink:Citation:
Envoyé par ToxiZz
Ca ne marche pas, sans doute parce que le <xsl:apply-templates select="texte"/> suppose que <texte> est le fils du noeud racine, ce qui en ferait l'élément racine qui englobe tout le reste du XML. Est-ce le cas ?
Non ce n est pas le cas, voici un ex de mon fichier xml :
J'ai donc modifier :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 <racine> <nouveaute id="4"> <date>09-01-06</date> <image>modules/nouveautes/images/mini/</image> <titre>n8-crew au 10 Days Off Lundi 25-07-05 : Inscriptions Ouvertes !</titre> <texte>Premier voyage n8-crew pour une soirée explosive en prévision ! En effet, lundi 25 juillet 2005, n8-crew aura le plaisir de vous emmener aux portes du Vooruit à Gand pour la soirée de clôture des 10 Days Off. <br /> <br /> Au programme de la soirée, 3 salles :<br /> <br /> - La première salle acceuillera en tête daffiche, le très en vue Dj Hell et les non moins connus frères Ali et Basti Schwarz, alias Tiefschwarz ; ce trio d'enfer clôture les 10 Days Off avec un set collectif d'une durée de 8 heures ! <br /> - Non moins de sept Djs à laffiche de la seconde salle<br /> - La boîte bruxelloise « Dirty Dancing » prendra possession de la dernière salle avec les résidents Cosy Mosy et Sweatshop ainsi que dautres artistes comme The Neon Judgement ou encore Kiki.<br /> <br /> A noter que la majorité des artistes présents sont belges <br /> Pour plus dinfos, consultez la rubrique « évènements ».</texte> <commentaire nombre="0">index.php?page=commentaires&NrNouveaute=4</commentaire> </nouveaute> </racine>
Mais les <br /> ne sont tjs pas interpreter .Code:
1
2
3
4
5 <xsl:template match="/racine/nouveaute/texte"> <p> <xsl:copy-of select="text()|br"/> </p> </xsl:template>
Ce n'est pas cela qu'il faut modifier, c'est le chemin d'accès nécessaire pour accéder à l'élément texte en partant de la racine :
Code:<xsl:apply-templates select="racine/nouveaute/texte" />
C'est ce que j'avais fait aussi, et ca marche en fait.
Mais le problème c'est que je ne l avais pas vu tt de suite car je travaille sous mozilla.
Cette technique m affiche bien,le retour a la ligne, mais uniquement sous IE, pkoi firefox ne le fait pas aussi ???
De la meme maniere, comment faire par exemple si le fichier xml contient des balise <b> </b>, ...
ex:
Comment dire dans le fichier xsl d'interpreter les balise <b> comme gras ...Citation:
<racine>
<nouveaute id="4">
<date>09-01-06</date>
<image>modules/nouveautes/images/mini/</image>
<titre>blablabla</titre>
<texte>blablabla <b> txt en gras </b> blablabla
</nouveaute>
</racine>
il suffit d'utiliser :
Et le code html sera interpreté !Code:<xsl:copy-of select="texte" />