XML et CSS

supunna

Membre confirmé
19 Mars 2006
59
4
Salut à toutes et tous !

J'y ai bien passé quelques heures, mais rien à faire, je suis paumé, j'y comprends rien :rose:
Voilà l'affaire :
J'ai le lecteur flash jeroenwijering pour lire des mp3 et des flv — très bien. Il est relié à un fichier xml, qui contient tous les médias — Parfait.
Bloc de code:
<?xml version="1.0" encoding="utf-8"?>
<playlist version="1" xmlns="http://xspf.org/ns/0/">
    <trackList>

        <track>
            <title>Joseph Kosma - La Fourmi</title>
            <annotation>Kosma / Desnos</annotation>
            <location>../multimedia/audio/LaFourmi.flv</location>
            <image>../multimedia/photo/kosma.jpg</image>
            <creator>Video</creator>
            <info>http://www.zigzag-territoires.com/article.php3?id_article=803&lang=fr</info>
        </track>
        
        <track>
            <title>Joseph Kosma - Le Désespoir est assis sur un banc</title>
            <annotation>Kosma / Prévert</annotation>
            <location>../multimedia/audio/desespoir_assis.mp3</location>
            <image>../multimedia/photo/kosma.jpg</image>
            <creator>Audio</creator>
            <info>http://www.zigzag-territoires.com/article.php3?id_article=803&lang=fr</info>
        </track>
        
    </trackList>
</playlist>
Maintenant, je voudrais mettre en forme certains textes de mon fichier xml : écrire Audio (dans la balise <creator>) en rouge, puis Vidéo en orange, etc. Et là… :confused:

Quelqu'un pourrait-il me donner une explication simple, svp ?
Merci !
 
Pour mettre en forme du XML : XSL :zen: Ca te permet de parser ton fichier et de générer avec les données contenues dans celui-ci un autre fichier, HTML par exemple si tu veux faire de la mise en forme de texte.
 
C'est possible de mettre en forme du xml avec des css, comme ceci par exemple :

Bloc de code:
<?xml version="1.0" encoding="utf-8"  ?>
  <?xml-stylesheet type="text/css" href="/developpeur/maFeuilleCSS.css" ?>
    <racine>
     <balise />
                                      ...
     </racine>
source

Pour ce qui est du xsl évoqué par ntx, tu peux voir un effet avec le flux rss du blog de Tristan Nitot. Dans IE6, tu as l'impression d'avoir une page html, mais c'est en fait la feuille xslt qui transforme visuellement le fichier xml. ;)
 
Oui, je préférerais beaucoup utiliser les css :)
Ça, je maîtrise un peu, tandis que le xsl… :confused:
Alors lier la feuille de style css, facile…
Bloc de code:
<?xml-stylesheet href="mystyle.css" type="text/css"?>
mais appeler un style dans mon fichier xml, j'ai pas bien compris comment on fait…
Si je fais :
Bloc de code:
<creator><span style="color:red;" />Photo</creator>
La couleur ne change pas.

Si je fais :
Bloc de code:
<creator><span class=photo" />Photo</creator>
où le style photo renvoie à une couleur rouge, c'est carrément le xml qui ne se charge plus !??
 
Ah non là tu déconnes... Tu dois mettre les déclarations dans le fichier .css. ;)

Un truc que tu pourrais faire c'est ça (pas testé) :

<creator class="photo">Photo</creator>
Et dans ton fichier css mettre :

creator.photo {color: red;}
On aurait pu jouer sur le content dans les css mais IE n'a pas beaucoup de sélecteurs très évolués. ;)

Perso je passerais en xsl.
 
Pour avoir fait quelques essais avec le MediaPlayer de Jeroen tu peux mettre des balises HTML dans ta playlist, il suffit de changer les signes <> par les valeurs hexa &lt; et &gt; ainsi pour mettre un texte en bold ça donne ceci :
Bloc de code:
	<track>
		<title>3'40</title>
		<creator>&lt;b&gt;Yves Harté&lt;/b&gt; - La Huitième Couleur</creator>
		<location>videos/video1.flv</location>
		<image>videos/accueil.jpg</image>
	</track>
A toi de voir pour des choses plus complexes... ;) :cool:
 
Mince, j'étais plein d'espoir après ta réponse… :heu:
Quand je fais copier-coller ta balise creator, chez moi ça écrit en toute lettre : <creator><b>Yves Harté</b> - La Huitième Couleur</creator>

La définition de ton xml est bien :

<?xml version="1.0" encoding="utf-8"?>
<playlist version="1" xmlns="http://xspf.org/ns/0/">

:confused:
 
Bien entendu, le code est interprété c'est le principe de hexa, si j'ai besoin de mettre un code de ce type dans un xlm, je le conçois et avec un rechercher/remplacer je modifie toutes les balises <> par leur cousines hexa &lt; &gt;

Pour la définition de l'XML c'est exactement la même, ça marche très bien avec dans la Playlist les noms en gras, je n'ai pas essayé avec une balise color ou un apple de classe CSS mais à priori ça doit marcher.

J'ai un RDV ce matin, je regarderais ça cet aprem... :cool:
 
À moins que ce soit un quelconque réglage à faire dans le fichier flash… Pourtant l'icône html est bien sélectionnée pour ce champ de texte…
Ça m'agace — Pourquoi la simple balise gras fonctionne chez toi, et pas chez moi ? :mouais:
 
Retour après quelques tests, les balises simple <b> <i> sont prise en compte, pas les balises plus complexes (<span> <font color>...) encore moins avec un appel de classe CSS...

Tu peux aller gueuler sur les forums (que je n'ai mâme pas consulté) de Jeroen... :D ;)