From: Jean-Michel (balpubb@wanadoo.fr)
Date: 13/04/2004 - 11:04
TECHNIQUE XML/XSL :
style exposant
Bonjour,
Ce que je veux faire dépasse l'utilisation simple/basique du langage XSL/XSLT/.. . Et je ne sais pas comment faire.
J'ai créé un document XML et une feuille de style XSL pour l'affichage en HTML de ma page dans les navigateurs. Je souhaite afficher des parties de quelques entités avec un style exposant (ou indicé, ou gras, enfin peut importe).
Imaginons que dans une entité de notre document XML, nous ayons comme texte "... 1er participant ..." ou "... 1ere année ..." ou "... 2e voiture ..." (les "..." signifiant du texte avant ou après).
Je désire créer 'un je sé pas koi ;)' qui, au fur et à mesure de l'exécution de la feuille de style, va regarder dans chaque entité (dans toutes les entités du fichier XML) pour trouver '1er' ou '1ere' ou '2e' etc.. et les remplacer par "1<sup>er</sup>" ou "1<sup>ere</sup>" ou "2<sup>e</sup>".
Pour obtenir le résultat escompté, je peux soit :
- dans le document XML, rajouter dans les entités le tag correspondant (<sup>) :
'... 1<sup>er</sup> participant ...' ie page http://xmlfr.org/listes/xml-tech/2003/04/0063.html
- soit utiliser dans ma feuille de style les fonctions <xsl:value-of select="substring(,,)"/> ou <xsl:value-of select="substring-after(,)"/>. pour récrire avec les balises <sup> et </sup>
Cette méthode est dépendante de la position des occurences et donc, spécialise ma feuille de style au lieu de la rendre générique.
Ces deux procédés sont, je pense, en désaccord avec la philosophie XML/XSL (séparation des données et de l'affichage). Je souhaite écrire ma feuille de style d'une façon (en utilisant des namespaces ?) qui respecterait cette notion et agirait en fonction du texte '1ere' ou '2e' ou '3e' etc ... Le code serait plus complexe, mais bien plus PROPRE !
Voici un exemple :
<ESPACE index="1">
<_1>
<TOTO>blabla (1)</TOTO>
<TITI> 1er blibli </TITI>
<TATA>coucou</TATA>
<TUTU>nimportekoi</TUTU>
</_1>
<_2>
<TOTO>blabla (2)</TOTO>
<TITI>second blibli</TITI>
<TATA>allo</TATA>
<TUTU>nimportekoikoi</TUTU>
</_2>
<_3>
<TOTO>blabla (3)</TOTO>
<TITI>le 3e blibli dans la 1ere machine</TITI>
<TATA>comment</TATA>
<TUTU>niiimportekoi</TUTU>
</_3>
<_4>
<TOTO>blabla (4)</TOTO>
<TITI>et le 4e blibli</TITI>
<TATA>i fé soleil</TATA>
<TUTU>rien</TUTU>
</_4>
</PARTIE>
Pour le document XML suivant, je souhaite que :
-'1er' dans '1er blibli' soit écrit :
* '1' normalement
* 'er' en exposant
* et 'blibli' normalement
- que 'second blibli' soit écrit normalement
- que le 'e' de '3e' et 'ere' de '1ere' soient écrits en exposant mais que tout le reste soit écrit normalement
- que le 'e' de '4e' dans 'et le 4e blibli' soit écrit en exposant alors que tout le reste sera écrit normalement.
Quelqu'un peut-il m'indiquer un axe de recherche, ou carrément la solution ? Merci
Jean-Michel
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
Archive générée par hypermail 2.1.3 le 28/06/2004 - 11:06 UTC
webmaster@xmlfr.org
|