[XSL] Récupérer correctement des balises
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 :
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
| <?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> |
En gros je cherche à obtenir une page html de cette forme :
Code:
1 2 3 4 5 6
| <html>
<body>
<p>blablabla<br /> blablablablablablablablablablablabla </p>
<p>blablablablablablablablablablablabla<br /> blablablablablablablablablablablabla </p>
</body>
</html> |
Vous noterez que :
la balise <body> du doc XML devient <body> :roll:
la balise <p> du doc XML devient <p> :roll: :roll:
et que la balise <lb/> du doc XML devient <br />
Afin de réaliser cette transformation automatiquement j'ai donc écris cette feuille XSL :
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
| <?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> |
J'ai indiqué dans feuille XSL à quel niveau se trouve le problème (tout en bas).
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