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 :

[Débutant] Mise en forme avec XSL


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Inactif  
    Inscrit en
    Mars 2006
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 352
    Points : 292
    Points
    292
    Par défaut [Débutant] Mise en forme avec XSL
    Bonjour,

    où je peux trouver les propriétes de mise en forme d'un document XML à l'aide de XSL, à l'instar du CSS, permettant de colorer des titres, souligner, mettre en gras, mettre en boîte des blocs, insérer des images background, ...etc.

    Merci d'avance.

  2. #2
    Membre éprouvé
    Profil pro
    Responsable Dev
    Inscrit en
    Décembre 2003
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Dev

    Informations forums :
    Inscription : Décembre 2003
    Messages : 788
    Points : 1 063
    Points
    1 063
    Par défaut
    en faite le xsl va permettre de transformer ton fichier xml en fichier xhtml (par exemple) donc soit:
    * tu ajoutes dans ton xsl les balises couleurs ...
    * tu génères un fichier html et dans lequel tu fait référence à un fichier css

    exemple
    fichier xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <a>
    <tutu>titi</tutu>
    <tutu>titi</tutu>
    <tutu>titi</tutu>
    <toto>titi</toto>
    </a>
    fichier xsl
    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
     
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    	<xsl:output 
      		encoding="ISO-8859-15"
      		method="xml"
      		indent="yes" />
     
    	<xsl:template match="/">
                   <html><body>
    			<xsl:apply-templates select="*"/>
    		</body></html>
    	</xsl:template>
     
    	<xsl:template match="tutu">
                   <h1 style="color:olive"><xsl:value-of select="."/></h1>
    	</xsl:template>
     
    	<xsl:template match="toto">
                   <h2 style="color:red"><xsl:value-of select="."/></h1>
    	</xsl:template>
    </xsl:stylesheet>
    et la tu obtiens un fichier avec des styles différents
    soit

    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
     
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    	<xsl:output 
      		encoding="ISO-8859-15"
      		method="xml"
      		indent="yes" />
     
    	<xsl:template match="/">
                   <html><head>
     
    	       <link rel="StyleSheet" href="essai.css" type="text/css">
                   </head><body>
    			<xsl:apply-templates select="*"/>
    		</body></html>
    	</xsl:template>
     
    	<xsl:template match="tutu">
                   <h1 style="color:olive"><xsl:value-of select="."/></h1>
    	</xsl:template>
     
    	<xsl:template match="toto">
                   <h2 style="color:red"><xsl:value-of select="."/></h1>
    	</xsl:template>
    </xsl:stylesheet>
    et tu as un fichier essai.css
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    h1 { 
    color: olive;
    }
    h2 { 
    color: red;
    }
    je préfère personnellement la deuxième solution (avec css) car comme cela je différencie la mise en forme du contenu (en faite un designer de site peux par la suite intervenir sans modifier la feuille xsl)

  3. #3
    Inactif  
    Inscrit en
    Mars 2006
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 352
    Points : 292
    Points
    292
    Par défaut
    Merci fraoustin,

    est-ce que je peux utiliser uniquement du XSL pour la mise en forme d'un document XML ? Positionner des blocs, insérer des images background ? Car le travail qui m'a été confié exige le XSL et pas de CSS, je ne crois pas que c'est une bonne solution !!!

    Juste une question de validité Xhtml 1.0 : le code écrit, en bleu, est-il obligatoire ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Document XSL
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/">
      <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
      ...
      </html>
    <xsl:template>
    <xsl:stylesheet>
    À bientôt.

  4. #4
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    A savoir :

    XSLT n'est pas là pour faire de la mise en page... à la base, XSLT est là pour transformer un arbre XML (un document XML) en un autre OU en texte OU en HTML.

    Ensuite, pour tout ce qui est mise en page/mise en forme, le CSS est en général nettement mieux adapté

    Sinon au niveau du XHTML, oui, le code en bleu est obligatoire d'un point de vue validation, cf la norme XHTML ^^
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  5. #5
    Inactif  
    Inscrit en
    Mars 2006
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 352
    Points : 292
    Points
    292
    Par défaut
    Merci Swoög,

    donc, comment peut-on inclure les deux fichiers XSL et CSS à un document XML ?

  6. #6
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Pour le CSS, il te suffit d'utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?xml-stylesheet type="text/css" href="cd_catalog.css"?>
    Pour XSLT :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?xml-stylesheet type="text/xsl" href="simple.xsl"?>
    Il te suffit de mettre la balise qui t'intéresse juste après le prologue XML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?xml version="1.0" ... ?>
    Par contre, je doute qu'il soit possible d'utiliser ET un CSS ET un XSLT dans le même XML... (logique puisque les deux ont un impact non compatible sur l'affichage du XML )

    Bonne Continuation
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  7. #7
    Inactif  
    Inscrit en
    Mars 2006
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 352
    Points : 292
    Points
    292
    Par défaut
    Bonsoir,

    on peut écrire ce code ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Document XML
    <?xml version="version" encoding="ISO-5988-1" ?>
    <?xml-stylesheet type="text/xsl" href="style.xsl"?>
    <?xml-stylesheet type="text/css" href="style.css"?>
    ...
    style.xsl : transformer le document XML en XHTML,
    style.css : mise en page du document (couleur, mise en valeur, positionnement, mise en boîte, ...etc.)

    Sinon, comment dois-je procéder pour réaliser un petit site web statique avec XML en utilisant impérativement le XSL ?

    Merci de votre patience.

  8. #8
    Inactif  
    Inscrit en
    Mars 2006
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 352
    Points : 292
    Points
    292
    Par défaut
    Bonjour,

    pour clore ce sujet, je voudrais savoir une chose : est-il possible de positionner des blocs <div></div> uniquement avec XSL / XSLT ?

    Merci d'avance.

  9. #9
    Membre éprouvé
    Profil pro
    Responsable Dev
    Inscrit en
    Décembre 2003
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Dev

    Informations forums :
    Inscription : Décembre 2003
    Messages : 788
    Points : 1 063
    Points
    1 063
    Par défaut
    oui, il suffit de l'ajouter dans ton code xsl
    sinon pour le css si tu as interdiction de l'utiliser ne l'utilise pas , mais sache que ton code sera par la suite plus difficile à maintenir

  10. #10
    Inactif  
    Inscrit en
    Mars 2006
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 352
    Points : 292
    Points
    292
    Par défaut
    Bonsoir,
    Citation Envoyé par fraoustin Voir le message
    oui, il suffit de l'ajouter dans ton code xsl
    sinon pour le css si tu as interdiction de l'utiliser ne l'utilise pas , mais sache que ton code sera par la suite plus difficile à maintenir
    Donc, c'est possible d'écrire ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Document XML
    <?xml version="version" encoding="ISO-5988-1" ?>
    <?xml-stylesheet type="text/xsl" href="style.xsl"?>
    <?xml-stylesheet type="text/css" href="style.css"?>
    ...

  11. #11
    Membre éprouvé
    Profil pro
    Responsable Dev
    Inscrit en
    Décembre 2003
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Dev

    Informations forums :
    Inscription : Décembre 2003
    Messages : 788
    Points : 1 063
    Points
    1 063
    Par défaut
    en faite en même temps je ne pense pas que oui, mais si tu as un process qui génère ton fichier html rien ne t'empêche d'utiliser par la suite un css

  12. #12
    Membre éprouvé
    Profil pro
    Responsable Dev
    Inscrit en
    Décembre 2003
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Dev

    Informations forums :
    Inscription : Décembre 2003
    Messages : 788
    Points : 1 063
    Points
    1 063
    Par défaut
    je corrige ma réponse (j'ai chercher car cela me préoccupait)
    donc tu a un fichier xml que tu transforme en html (par la naviguateur) via une feuille de style. Dans ta transformation tu génère la balise <link rel="StyleSheet" href="style.css" type="text/css"/> permettant par la suite d'appliquer une feuille de style au html générer

  13. #13
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Points : 1 610
    Points
    1 610
    Par défaut
    J'ai eu pas mal de pb de compatibilité avec les feuilles de style css dans ce cas de figure (en générant la baliser link), notamment avec IE. J'ai pas trouvé de solution élégante.

  14. #14
    Inactif  
    Inscrit en
    Mars 2006
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 352
    Points : 292
    Points
    292
    Par défaut
    O.K., merci à vous deux

    c'était la balise <link> et non pas <xsl:stylesheet>.

    Amicalement.

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

Discussions similaires

  1. [JAVA][XSL-FO] Mise en forme avec FOP
    Par toMuch dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 08/09/2010, 13h18
  2. [WebForms][2.0] Mise en forme avec du css
    Par kakid dans le forum Général Dotnet
    Réponses: 12
    Dernier message: 26/01/2006, 18h49
  3. [débutant]XML vers XML avec XSL
    Par tokamak dans le forum XSL/XSLT/XPATH
    Réponses: 10
    Dernier message: 11/07/2005, 10h27
  4. Mise en forme avec Netscape et Mozilla
    Par seb30 dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 18/10/2004, 10h18

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