Bonjour à tous,
Je suis actuellement en train de développer mes premières feuilles de style XSL.
Je me retrouve donc avec ce code XML à transformer, en html :
En gros je cherche à obtenir une page html de cette forme :
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="UTF-8"?> <TEI> <text> <body> <div rend="center"> <p>bienfaits de la mer 1° elle nous fournit la pluie, le poisson, les perles 2° elle nous apporte au moyen de la <lb/>navigation les richesses de tous les pays. 3° elle facilite la rapide propagation de la Foi <lb/>chez les nations » 52.</p> <p>Le soleil « est l'image de Notre Seigneur qui est sorti du sein de son père. <lb/>chaque jour Dieu lui marque le point où il doit partir & celui où il doit s'arrêter. <lb/>55.</p> <p>utilité de la Lune. elle tempère l'obscurité l'obscurité - elle règle les travaux de la Campagne - elle éclaire <lb/>l'homme qui a besoin de voyager durant la nuit, & nous révèle à chaque instant la <lb/>sagesse du créateur.</p> <p>« je remarque sur les Poissons que c'est une merveille qu'ils puissent naître & vivre dans l'eau de la mer, qui est salée ! <lb/>& que leur race ne soit pas anéantie depuis longtemps. 57.</p> <p>utilité des reptiles & des <lb/>animaux sauvages</p> <p>ils nous apprennent à respecter & à craindre Dieu <lb/>ils nous fournissent aussi de précieuses fourrures -</p> </div> </body> </text> </TEI>
Vous noterez que :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <html> <body> <p>blablabla<br /> blablablablablablablablablablablabla </p> <p>blablablablablablablablablablablabla<br /> blablablablablablablablablablablabla </p> </body> </html>
la balise <body> du doc XML devient <body>
la balise <p> du doc XML devient <p>
et que la balise <lb/> du doc XML devient <br />
Afin de réaliser cette transformation automatiquement j'ai donc écris cette feuille XSL :
J'ai indiqué dans feuille XSL à quel niveau se trouve le problème (tout en bas).
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
37
38
39
40
41
42
43 <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="html" encoding="utf-8" doctype-public="-/W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" indent="yes" /> <xsl:template match="TEI"> <html> <xsl:apply-templates select="text"/> </html> </xsl:template> <xsl:template match="text"> <xsl:apply-templates select="body"/> </xsl:template> <xsl:template match="body"> <body> <xsl:apply-templates select="div"/> </body> </xsl:template> <xsl:template match="div"> <div> <xsl:apply-templates select="p"/> </div> </xsl:template> <!-- C'est ICI que se trouve le problème ! --> <xsl:template match="p"> <p> <xsl:value-of select="."/> <xsl:apply-templates select="lb"/> </p> </xsl:template> <xsl:template match="lb"> <br /> </xsl:template> </xsl:stylesheet>
Pour expliciter clairement mon problème voici ce qui se passe :
Quand j'applique ma feuille XSL au doc XML : les <lb/> sont bien transformés en <br />
MAIS les <br /> générés se trouvent systématiquement placés en fin de paragraphe (<p>) et non pas à l'endroit où il devrait se trouver, c'est à dire, le plus souvent : au milieu du texte....
Si vous avez des idées à me proposer, pour corriger / améliorer ma feuille XSL et par la même occasion résoudre mon problème....Bah je suis preneur !
Merci d'avance
Partager