Mise en forme dans XML

Eléphant du PHP | 291 Messages

25 févr. 2008, 00:16

Un sujet un peu similaire au précédent, mais je vais formuler plus explicitement mes nouveaux besoins :

j'aimerai que "l'utilisateur" d'un de mes outils puisse mettre en forme certaines choses directement dans le fichier XML.

Exemple foo.xml :

Code : Tout sélectionner

<root> <balise>et voila quelque chose de <gras>TRES</gras> important</balise> </root>
Au final, lors du parsing avec une feuille de style XSL / XSL-Fo, je voudrai bien évidement que "TRES" soit en gras. Je sais que normalement, on ne met pas de mise en page dans le HTML, mais dans ce cas là, c'est l'utilisation qui me semble de loin la plus simple pour le moment...

Si quelqu'un peut m'aiguiller, pour que ça puisse fonctionner correctement aussi bien avec XSL que XSL-Fo, je suis plus que preneur !!

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

25 févr. 2008, 15:47

Pour XSL-FO je ne sais pas (et à moins que tu travailles dans l'édition, tu n'as pas envie de le savoir non plus) mais en XSLT c'est facile :

Code : Tout sélectionner

<xsl:template match="//gras"> <b><xsl:apply-templates /></b> </xsl:template>

Eléphant du PHP | 291 Messages

25 févr. 2008, 15:55

Ahah merci beacuoup, je n'avais pas pensé a écrire les templates avec un matching comme ca ! Je teste ce soir en rentrant !

PS : J'ai vraiment besoin de savoir pour XSL-Fo, mais ton petit morceau de code m'a inspiré pour y arriver ;-)

ViPHP
ViPHP | 4674 Messages

25 févr. 2008, 17:45

Bonjour :).

Avec XSL-FO tu aurais un truc du genre :

Code : Tout sélectionner

<xsl:template match="//gras"> <fo:block font-weight="bold"> <xsl:apply-templates /> </fo:block> </xsl:template>
Il serait plus judicieux d'utiliser fo:inline plutôt que fo:block, mais ça dépend de la façon dont tu as construit les parents de //gras.
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Eléphant du PHP | 291 Messages

26 févr. 2008, 22:50

Et voilà j'ai réglé tout ça grâce à vous :)
Encore merci !

HyWaN > En effet j'ai plutôt mis "inline" ;-)