Bonjour à tous,
Mon problème est le suivant : j'ai tout un tas de fichiers xhtml qui ressemblent à ça :
Et j'aimerais, avec l'aide d'un fichier xsl, faire qu'en sortie on ait les "Agent" qui soient de la même couleur, et que "Cause" soit d'une autre couleur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet href="style.xsl" type="text/xsl"?> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html"> <head> <title>Titre de la page</title> </head> <body> <fen>Agent</fen> <fen>Cause</fen> <fen>Agent</fen> </body> </html>
Le problème : ça ne sera pas toujours "Agent" et "Cause" ! Les balises sont toujours <fen>, mais à l'intérieur la valeur textuelle change : <fen>Truc</fen>, <fen>Machin</fen> par exemple.
Je donne mes idées pour l'instant : j'ai fait un fichier xsl qui ajoute aux balises <fen> une classe correspondant à leur valeur textuelle. De cette façon, j'obtiens du <fen class="Agent"> par exemple. Et ensuite mon idée c'est de mettre du CSS interne en créant une balise <style> qui s'applique à l'élément juste créé. Ça marche presque, mais j'arrive pas à trouver un moyen de mettre des couleurs différentes...
Mon fichier xsl (il n'y a rien après "Color :" parce que je sais pas quoi mettre) :
C'est un peu sale j'en conviens, mais si on a du xhtml comme ça :
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 <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="2.0" xmlns="http://www.w3.org/1999/xhtml" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:h="http://java.sun.com/jsf/html" xmlns:fo="http://www.w3.org/1999/XSL/Format"> <xsl:output method="html"/> <xsl:template match="xhtml:body"> <xsl:for-each select="xhtml:fen"> <xsl:call-template name="classMaker"/> </xsl:for-each> </xsl:template> <xsl:template match="xhtml:head"> <h:head> <title>Titre du document-test modifié par xsl</title> <link href="stylesheet.css" rel="stylesheet" media="all" type="text/css"/> </h:head> </xsl:template> <xsl:template name="classMaker"> <h1 class="{string(.)}"> <xsl:apply-templates/> </h1> <xsl:value-of select="/html/body/co"/> <style type="text/css"> .<xsl:apply-templates/>{Color : ;} </style> </xsl:template> </xsl:stylesheet>
Les deux "Agent" seront rouges.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <h1 class="Agent">Agent</h1> <style type="text/css">.Agent{Color:blue;}</style> <h1 class="Cause">Cause</h1> <style type="text/css">.Cause{Color:white;}</style> <h1 class="Agent">Agent</h1> <style type="text/css">.Agent{Color:red;}</style>
Merci d'avance pour votre aide, je bloque depuis quelques jours sur ce problème...
Partager