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 :

[XSLT] A propos de la feuille de style XSL


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre habitué

    Profil pro
    Inscrit en
    Février 2005
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 198
    Points : 171
    Points
    171
    Par défaut [XSLT] A propos de la feuille de style XSL
    Bonjour,

    je tente de comprendre comment le xml et xsl peuvent fonctionner ensemble. Dans ce but, j'ai fait une petite galerie photos très simple avec:
    - un fichier liste.xml décrivant les photos (nom du fichier)
    - un fichier photo.xsl mettant en forme ce fichier
    - un fichier styles.css pour définir la présentation

    Ca ne fonctionne pas trop mal chez moi, mais:
    - en local, le fichier xml et son xsl associé ne fonctionne que sous firefox et pas sous IE6.
    - sur le serveur web, j'ai un message: Erreur lors du chargement de la feuille de style : Une feuille de style XSLT ne possède pas de type Mime XML sous firefox alors que ça fonctionne nickel sous IE...

    J'ai fait une recherche sur le message d'erreur mais Google ne m'a pas aidé beaucoup sur ce coup là.
    Pouvez vous me donner un début d'explication ?

    Voici le lien vers ma galerie de test (ne fonctionnant donc que sous IE6)
    (les liens sur cette pages renvoient sur la page, je ne suis pas allé plus loin, c'est juste une expériementation !)

    le fichier liste.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
    45
    46
    47
    48
    <?xml version="1.0" encoding="utf-8"?>
    <?xml-stylesheet type="text/xsl" href="photos.xsl"?>
    <galerie>    
      <photos>        
        <title>Ph'OtObOx</title>
        <logo>logotobox.jpg</logo>
      <repertoires>            
        <repertoire>                
        <titre>Accueil</titre>
        <lien>liste.xml</lien>
       </repertoire>
       <repertoire>
         <titre>Architecture</titre>
         <lien>liste.xml</lien>
       </repertoire>
       <repertoire>
         <titre>Marines</titre>
         <lien>liste.xml</lien>
       </repertoire>
       <repertoire>
         <titre>Contact</titre>
         <lien>mailto:jiem51@9online.fr</lien>
       </repertoire>
       </repertoires>
       <photo>
         <fichier>1.jpg</fichier>
       </photo>
       <photo>
         <fichier>2.jpg</fichier>
       </photo>
       <photo>
         <fichier>3.jpg</fichier>
       </photo>
       <photo>
         <fichier>4.jpg</fichier>
       </photo>
       <photo>
         <fichier>5.jpg</fichier>
       </photo>
       <photo>
         <fichier>6.jpg</fichier>
       </photo>
       <!-- donne le lien de la galerie suivante -->
       <fin>
         <lien>liste.xml</lien>
       </fin>
      </photos>
    </galerie>
    le fichier photos.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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    <?xml version="1.0"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/galerie">
    <!-- (c) OtObOx 2006 -->
     
    <html lang="fr" xml:lang="fr">
      <head>
        <title><xsl:value-of select="photos/title" disable-output-escaping="yes"/></title>
        <link rel="stylesheet" type="text/css" href="styles.css" media="screen"/>
      </head>
     
      <body>
        <br></br><br></br><br></br>
        <a name="debut"></a>
        <table border="0" cellpadding="10" cellspacing="0"><tr><td>
        <table border="0" cellpadding="0" cellspacing="0"><tr>
        <td valign="TOP">
          <table border="0" cellpadding="0" cellspacing="10">
     
            <!-- INSERTION DU LOGO: -->
            <tr><td>
            <xsl:variable name="logo" select="photos/logo"/>
            <img src="{$logo}"></img>
            </td></tr>
     
            <!-- INSERTION DES RUBRIQUES: -->
            <xsl:for-each select="photos/repertoires/repertoire">
              <xsl:variable name="nom_rep" select="titre"/>
              <xsl:variable name="lien" select="lien"/>
              <tr><td><a href="{$lien}"><xsl:value-of select="titre" disable-output-escaping="yes"/></a></td></tr>
            </xsl:for-each>
          </table>
        </td>
     
        <!-- INSERTION DES PHOTOS: -->
        <xsl:for-each select="photos/photo">
          <td>
          <xsl:variable name="nom_fichier" select="fichier"/>  
          <img src="{$nom_fichier}"></img>
          </td>
        </xsl:for-each>
     
        <!-- INSERTION DE LA FIN DE PAGE -->
        <td>
          <table border="0" cellpadding="10" cellspacing="10">
            <tr><td><a href="#debut">Retour</a><br></br></td></tr>
            <xsl:for-each select="photos/fin">
              <xsl:variable name="lien" select="lien"/>
              <tr><td><br></br><a href="{$lien}">Galerie suivante</a></td></tr>
            </xsl:for-each>  
          </table>     
        </td>
        </tr></table>
        </td></tr></table>
     
        <!-- INSERTION DU COPYRIGHT SOUS LE TABLEAU PRINCIPAL -->
        (c) jean-marc - 2006
      </body>
    </html>
     
    </xsl:template>
    </xsl:stylesheet>
    Merci pour votre aide,

    kenavo,

    Jean-Marc

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

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

    Je pense que ça vient de cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?xml-stylesheet type="text/xsl" href="photos.xsl"?>
    essaie de la remplacer par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?xml-stylesheet type="applicaiton/xslt+xml" href="photos.xsl"?>

  3. #3
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Points : 10 927
    Points
    10 927
    Par défaut


    la ligne que tu cites est parfaitement normé au contraire de ta modif, cela me semble bizarre.

    dans ton xslt essaye a la place de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="html" version="1.0" encoding="ISO-8859-1" indent="yes"/>
    Et enregistre aussi tes xslt sous .xslt au lieu de .xsl comme tu le fais
    <?xml-stylesheet type="text/xsl" href="photos.xsl"?>
    N'oublie pas alors de changer ce lien

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

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Citation Envoyé par Erwy


    la ligne que tu cites est parfaitement normé au contraire de ta modif, cela me semble bizarre.
    Du fait de l'erreur, et que les documents xml ont souvent le mime type application/xml c'est ce qui m'a semblé logique, il y avait de plus de nombreux exemple avec ceci trouvés via google (bon, ok, faut pas toujours croire ce qu'on lit, mais quand même...) désolé... :\

  5. #5
    Membre habitué

    Profil pro
    Inscrit en
    Février 2005
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 198
    Points : 171
    Points
    171
    Par défaut
    Merci de vous êtes penché sur mon cas
    Malheureusement, cela ne marche pas.
    En suivant le message de Swoög, je n'ai plus de message d'erreur, mais j'ai un résultat inattendu: j'ai une seule ligne qui s'affiche écrivant tous mes textes à la suite:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Ph'OtObOxlogotobox.jpgAccueilliste.xmlArchitecture ...
    Avec la proposition de Erwy, rien ne semble avoir changé: lisible avec firefox mais pas sous IE en local, et le contraire quand les fichiers sont uploadés sur le serveur... Non, je n'ai pas oublié de changer l'extension XSLT dans le fichier XML le message d'erreur me le confirme !

    Je vais continuer à chercher de mon coté, mais si vous avez d'autres pistes... je suis preneur !

    Sinon, pourquoi il vaut mieux nommer les fichiers XSL en XSLT ? c'est la future norme ?
    Et puis, que pensez vous de mon code xml et xsl ? Est-il propre ? ou je me prends la tête à faire des choses compliquées ?

    L'idée à terme serait de développer une petite application en Visual Basic pour écrire le fichier XML automatiquement en fonction des noms de photos classées dans différents répertoires (appellés "galeries" sur ma page web). Mais si ça bloque dès l'interaction entre xml et xls, ça ne sert à rien d'aller plus loin...
    Je pose ces dernières questions, car je n'ai rien vu de semblable sur le net (xml et xsl pour gérer une galerie d'images). Xml et swf (flash) oui, mais cette méthode...

    kenavo,

    Jean-Marc

  6. #6
    Membre habitué

    Profil pro
    Inscrit en
    Février 2005
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 198
    Points : 171
    Points
    171
    Par défaut
    Personne pour me répondre ?

    Le mieux que j'ai réussi, c'est en plaçant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?xml-stylesheet type="text/xslt" href="photos.xsl"?>
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <?xml-stylesheet type="text/xml" href="photos.xsl"?>
    qui donne le même résultat que:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <?xml-stylesheet type="application/xslt+xml" href="photos.xsl"?>
    c'est à dire la suite des données sur une seule ligne, sans aucune mise en page (sous firefox). Par contre, IE ouvre le fichier xml seulement, avec la présentation "en arbre".

    Ca ne viendrait pas d'une histoire de
    J'utilise UltraEdit 32 pour éditer les fichiers, et dans la barre d'état, il m'indique "U8 DOS"... c'est le bon codage ?

    kenavo,

    JM

  7. #7
    Membre habitué

    Profil pro
    Inscrit en
    Février 2005
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 198
    Points : 171
    Points
    171
    Par défaut
    J'ai trouvé une solution: renommer le fichier photos.xsl en photos.xml.

    Ca fonctionne en local sous FireFox et sur le net sous FF et IE6.

    En test pour voir si ça marche avec un Mac, un Linux etc. N'hésitez pas à me donner un retour !

    Résultat

    kenavo,

    Jean-Marc

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 29/07/2008, 09h49
  2. Réponses: 5
    Dernier message: 06/06/2008, 17h14
  3. Href absolu sur une feuille de style XSL
    Par fgallnii dans le forum XML/XSL et SOAP
    Réponses: 5
    Dernier message: 09/07/2007, 16h38
  4. [XSLT] Utiliser une fonction PHP à partir de la feuille de style XSL
    Par sayou84 dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 25/04/2007, 13h35
  5. [XSLT]comment assigner 1 feuille de style XSL?
    Par belassel_z dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 13/05/2006, 19h21

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