Bonjour,

J'utilise Cobra pour parser un flux HTML et ensuite afficher les résultats dans le HTMLPanel en appliquant une feuille de style.

Ci-dessous extrait du code qui crée un document DOM qui va me servir à générer mon code HTML à afficher.
Si je définis le style directement dans le fichier HTML, pas de problème.

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
 
        Document dores = builder.newDocument();
        Element racine = dores.createElement("html");
 
        Element head = dores.createElement("head");
        Element body = dores.createElement("body");
        Element style = dores.createElement("style");
        style.setAttribute("type", "text/css");
        Text styleDefined = dores.createTextNode("td {background-color:#339; color:#fff;}");
        style.appendChild(styleDefined);
        head.appendChild(style);
        racine.appendChild(head);
// ... suite de la création du code HTML de sortie
        racine.appendChild(body);
        dores.appendChild(racine);
        DOMSerializer serializer = new DOMSerializer();
        StringWriter out = new StringWriter();
        serializer.serialize(dores, out);
        String res = out.toString();
        panel.setHtml(res, "", rcontext);
// C'est ok, le style est appliqué
En revanche, si j'essaie de faire référence à une feuille de style externe (style.css), le style n'est pas appliqué.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
        Element racine = dores.createElement("html");
        Element head = dores.createElement("head");
        Element body = dores.createElement("body");
        Element link = dores.createElement("link");
        link.setAttribute("href", "/style.css");
        link.setAttribute("media", "all");
        link.setAttribute("rel", "stylesheet");
        link.setAttribute("type", "text/css");
        head.appendChild(link);
// reste du code identique...
Mon fichier style.css est placé dans le même répertoire que ma classe.

Où est l'erreur dans mon code ?