Salut !
je possède un document xml que je souhaite convertir en html. La structure étant très spécifique, j'ai écris une feuille de style XSL.
J'ai un problème pour appliquer proprement les principes de template et donc de récursivité sur un cas particulier. Je vous l'expose :
Le document XML contient du texte "entouré" de balises pour indiquer son formattage. J'aimerais traduire tout cela en <span>.
Voici les 3 cas que j'ai
1°
<varpho>
<i>salut</i>
</varpho>
--> doit devenir en html <span class="corpsItalique">salut</span>
2°
<varpho>
<i>
<b>chien</b>
-ne
</i>
</varpho>
--> doit devenir en html <span class="corpsGrasItalique">chien</span><span class="corpsItalique"> -ne</span>
3°
<varpho>
<i>
Dict. fra.
<b>chat</b>
-chaton
</i>
</varpho>
--> doit devenir en html <span class="corpsItalique">Dict. fra.</span><span class="corpsGrasItalique">chat</span><span class="corpsItalique"> -chaton</span>
Je n'arrive pas à écrire le template pour générer le code html que je souhaite qui prendrait en compte ces 3 cas.
J'ai aussi essayé d'avoir les span imbriqués dans le code html. Par exemple, pour le cas 3° d'avoir : <span class="corpsItalique">Dict. fra.<span class="corpsGrasItalique">chat</span> -chaton</span>
Mais là non plus je n'y arrive pas.
<xsl:template match="//varpho/i">
<xsl:if test="./b/text()">
<span class="grasseItalic">
<xsl:value-of select="./b/text()"/>
</span>
</xsl:if>
<span class="corpsItalique">
<xsl:value-of select="./text()"/>
</span>
</xsl:template>
Ce XSL ne fonctionne que pour les cas 1 et 2
Merci d'avance pour votre aide !!
Fabrice.
Partager