IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XSL/XSLT/XPATH XML Discussion :

[debutant][xsl][css] xsl + css


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2004
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 19
    Points : 16
    Points
    16
    Par défaut [debutant][xsl][css] xsl + css
    Bonjour,
    je débute avec le xml et je suis en train d'effectuer des test avec ce langage pour voir les posiblités que j'aurai pour imprimer des états. Je souhaiterais avoir un fichier xls pour la mise en page et un fichier css pour tout ce qui concerne les police,...

    je sais qu'on peut le faire dans le fichier xsl, mais il est plus facile de modifier un fichier css qu'un xsl pour des personnes ne maîtrisant pas trop l'informatique.
    Donc mon problème, c'est que je ne sais pas comment intégrer mon fichier css dans mon fichier xsl pour que ça marche.
    D'après ce que j'ai pu voir sur le forum, il faut faire qqch dans ce style:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <xsl&#58;template name="CSS"> 
    <link rel="stylesheet" type="text/css"> 
    <xsl&#58;attribute name="href">exemple.css</xsl&#58;attribute> 
    </link> 
    </xsl&#58;template>
    ou
    ce bout de code à insérer dans la balise <head></head>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <link rel="stylesheet" type="text/css" href="chemin_de_ta_feuille_css.css"/>
    Mais ça ne marche pas, peut être que je l'insére au mauvais endroit, donc voici mon fichier xsl. En fait, il arrive à appliquer le bon style sur les balise HTML comme <body>, mais pas directement sur les balises XML.

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    <xsl&#58;template name="CSS"> 
    <link rel="stylesheet" type="text/css"> 
    <xsl&#58;attribute name="href">exemple.css</xsl&#58;attribute> 
    </link> 
    </xsl&#58;template>
     
    <xsl&#58;template match="/"> 
    <html> 
    <head> 
    <title>Statistiques pour la division 
    <xsl&#58;value-of select="statistiques_division/nom"/></title> 
    </head> 
     
    <body> 
    <h1><xsl&#58;value-of select="statistiques_division/nom"/></h1> 
     
    <table> 
     
    <tr> 
    <th>Equipe</th> 
    <th>Victoires</th> 
    <th>Défaites</th> 
    <th>Classement</th> 
    </tr> 
     
    <xsl&#58;apply-templates select="//equipe"/> 
     
    </table> 
     
    </body> 
    </html> 
    </xsl&#58;template> 
     
    <xsl&#58;template match="equipe"> 
    <tr> 
    <td align="left"><xsl&#58;value-of select="nom"/></td> 
    <td align="center"><xsl&#58;value-of select="resultats/victoires"/></td> 
    <td align="center"><xsl&#58;value-of select="resultats/defaites"/></td> 
    <td align="center"><xsl&#58;value-of select="classement"/></td> 
    </tr> 
    </xsl&#58;template> 
     
    </xsl&#58;stylesheet>

    Si qqn peut m'éclaircir sur ce sujet, ce serait sympa

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 223
    Points : 15 516
    Points
    15 516
    Par défaut Re: [debutant][xsl][css] xsl + css
    pourquoi tu ne fait pas ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <xsl&#58;template match="/"> 
      <html> 
        <head> 
          <link rel="stylesheet" type="text/css" href="exemple.css"/> 
          <title>Statistiques pour la division 
          <xsl&#58;value-of select="statistiques_division/nom"/></title> 
        </head> 
    ....
    ??

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2004
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 19
    Points : 16
    Points
    16
    Par défaut
    Cela marche, mais je n'arrive pas à appliquer le style css à mes balise XML.
    Dans mon fichier CSS,

    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
     
    body &#123; 
    background-color&#58; #CCCCCC; 
    &#125; 
    h1 &#123; 
    color&#58; #000000; 
    font-family&#58; Arial, Helvetica, sans-serif; 
    font-size&#58; 10pt; 
    &#125; 
     th 
    &#123; 
    color&#58; #000000; 
    font-family&#58; Arial, Helvetica, sans-serif; 
    font-size&#58; 10pt; 
    background-color&#58; #FFFFFF; 
    &#125; 
    td 
    &#123; 
    color&#58; red; 
    font-family&#58; Verdana, Arial, Helvetica, sans-serif; 
    font-size&#58; 10pt; 
    background-color&#58; #0099FF; 
    &#125;
    nom&#123;
    	color&#58;red;
    &#125;
    Il ne prends pas en compte la mise en forme de la balise nom

  4. #4
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 223
    Points : 15 516
    Points
    15 516
    Par défaut
    tu mélanges le css appliqué au xml et le css appliqué au html

    tu veux faire quoi ?
    - afficher le contenu du fichier xml avec les styles définis dans le css
    - OU transformer ton xml en html et ensuite afficher le code html avec les styles définis dans le css

  5. #5
    Membre à l'essai
    Inscrit en
    Février 2004
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 19
    Points : 16
    Points
    16
    Par défaut
    Je veux afficher mon xml avec les styles définis dans le css .

  6. #6
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 223
    Points : 15 516
    Points
    15 516
    Par défaut
    Citation Envoyé par fanchic29
    Je veux afficher mon xml avec les styles définis dans le css .
    ok donc tu n'as pas besoin de XSL

    il suffit que tu fasse un fichier xml comme ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?xml version="1.0"?>
    <?xml-stylesheet href="exemple.css" type="text/css"?>
    <statistiques_division>
    ...
    </statistiques_division>

  7. #7
    Membre à l'essai
    Inscrit en
    Février 2004
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 19
    Points : 16
    Points
    16
    Par défaut
    Comme le l'ai dit dans mon premier message, j'ai besoin des deux en fait, je veux utiliser un fichier xsl pour la présentation de la page ( tableau, paragraphe, ....) et un ficheir css pour des parties plus précise de la mise en forme ( police, couleur,...)
    Ce fichier CSS est nécéssaire car je souhaite proposer aux clients le moyen de modifier simplement ces quelques paramètre pour qu'il puisse y apporter leur touche personnel tout en gardant la forme globale du document.
    Je sais que peut tous faire en css, mais un fichier xsl me permetterais de formater ma page plus facilement.

    Ce que je veux faire, c'est combiner les deux.

    Merci pour tes réponses, si tu as une autre idée je suis plus que partant, même si en ce moment je suis sur autre chose, je crois que ça m'aiderais grandement car il va falloir que je m'y met serieuseument.

  8. #8
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 223
    Points : 15 516
    Points
    15 516
    Par défaut
    ah ok donc je t'ai proposé 2 solutions possibles c'était la 2ième que tu voulais
    donc oublie tout ce que je t'ai dit et on reprend depuis le debut

    quand tu utilise un XSL les balises XML de départ n'apparaisse plus à l'arrivé
    donc tu ne peux pas appliquer de style css sur la balise "nom"
    dans ton xsl tu mets le contenu de la balise nom dans un tableau html (balise 'td") donc soit tu applique ton syle à la balise "td" soit tu crée une classe ou un identifiant pour ta balise "td"

  9. #9
    Membre à l'essai
    Inscrit en
    Février 2004
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 19
    Points : 16
    Points
    16
    Par défaut
    Ok,
    Je crois que j'ai compris.
    Merci bcp

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2008
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Bonjour à tous,

    je suis nouveau sur ce forum et je me permet de "upper" ce post puisque ma question me semble s'inscrire dans la continuité de cette discussion.

    Donc voilà, je suis pratiquement dans le même cas que fanchic29, sauf que je cherche à appliquer un style css à tous mes liens présents sur une page formatée en .xhtml

    Un extrait de mon .css :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    A:link {text-decoration:none; color:#0000FF}
    A:visited {text-decoration:none; color:#0000FF}
    A:active {text-decoration:none; color:#FFFFFF}
    A:hover {text-decoration:none; background:#FFFFCC; color:#FF0000}
    Un extrait de ma page .xhtml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
     
    <?xml-stylesheet href="stylemobile.xsl" type="text/xsl"?>
    <page>
    	<menu/>
    </page>
    Le .xsl associé à ma page .xhtml ressemble à ça (extrait) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <xsl:template match="page">
    	<html xmlns="http://www.w3.org/1999/xhtml">
    	<link rel="stylesheet" type="text/css" href="mobile.css" media="all"/>
    		<body>
    		<center><xsl:apply-templates select="menu"/></center>
    		</body>
    	</html>
    </xsl:template>
    Donc j'ai placé la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <link rel="stylesheet" type="text/css" href="mobile.css" media="all"/>
    directement dans mon template xsl "page", et non dans mon template xsl "menu" (où il y a les liens), où j'ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <xsl:template match="menu">
    	<html xmlns="http://www.w3.org/1999/xhtml">
    		<body>
    		<a href="mobile.xhtml">ACCEUIL</a> -
    		<a href="tp1a_mobile.html">Mods</a> -
    		<a href="tp1b_mobile.html">Présentation <![CDATA[&]]> liens</a> -
    		<a href="tp1c_mobile.html">CV</a> -
    		<a href="annuaire.html">Annuaire</a>
    		</body>
    	</html>
    </xsl:template>
    J'ai essayé en mattant la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <link rel="stylesheet" type="text/css" href="mobile.css" media="all"/>
    dans le template xsl "menu" aussi, mais cela ne change rien.

    Donc ma question est : que puis-je faire pour que mes styles css s'appliquent sur les liens de ma page .xhtml ?

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2008
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Personne ne saurait m'aider ?

    En plus je suis persuadé que la solution à mon problème est vraiment simple

    Bonne fin de journée.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XHTML/CSS/XSL] Envois d'un formulaire par email
    Par Ildegarde dans le forum Autres langages pour le Web
    Réponses: 3
    Dernier message: 01/04/2009, 10h29
  2. [XSL-FO] HTML + CSS+ XSL + PDF
    Par nounours21_6 dans le forum XSL/XSLT/XPATH
    Réponses: 12
    Dernier message: 19/05/2008, 18h54
  3. [XML/CSS/XSL] Problème d'affichage des images "dynamiqu
    Par popol55 dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 06/04/2006, 17h24
  4. XSL-FO ou CSS ?..
    Par davcha dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 02/03/2006, 18h31
  5. [XSL] Utiliser des CSS dans un fichier XSL
    Par alainme dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 13/04/2005, 11h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo