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]pb application template feuille XSL incluse dans XSL


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre éclairé Avatar de snoop
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2003
    Messages : 354
    Par défaut [XSLT]pb application template feuille XSL incluse dans XSL
    Bonjour,
    J'ai un petit problème avec l'application d'une feuille de style incluse dans un xml.
    J'ai donc ma feuille XSL qui ressemble à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:include href="../feuille1.xsl">
    </xsl:include>
     
    <xsl:template match="monTag">
    <div style="color:green;font-size:20pt;">
    <xsl:apply-templates/>
    </div>
    </xsl:template>
     
    </xsl:stylesheet>
    A priori, la transformation devrait s'effectuer dans mon XML en fonction des templates définis dans le XSL inclus, mais les templates ne sont pas appliqués...
    Par contre si je mets directement dans ce XSL les templates issus de la feuille incluse alors les templates sont appliqués !
    Quel est le problème ?
    Merci

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

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    Tu est sûr que la seconde feuille XSL est bien chargée ?
    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 :resolu: (en bas)

  3. #3
    Membre éclairé Avatar de snoop
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2003
    Messages : 354
    Par défaut
    oui..., le chemin est correct !

  4. #4
    Membre émérite
    Inscrit en
    Octobre 2005
    Messages
    847
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 847
    Par défaut
    c peut être un pb de prioroté !!essaye :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:include href="../feuille1.xsl" priority="10"/>
     
    <xsl:template match="monTag" priority="1">
    <div style="color:green;font-size:20pt;">
    <xsl:apply-templates/>
    </div>
    </xsl:template>
     
    </xsl:stylesheet>

  5. #5
    Membre éclairé Avatar de snoop
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2003
    Messages : 354
    Par défaut
    L'attribut priority n'est pas autorisé dans la balise include...

  6. #6
    Membre émérite
    Inscrit en
    Octobre 2005
    Messages
    847
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 847
    Par défaut
    j'ai écrit n'imp!!...ce que je voulais dire c de mettre une priorité "-1" sur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <xsl:template match="monTag" priority="-1">
    <div style="color:green;font-size:20pt;">
    <xsl:apply-templates/>
    </div>
    </xsl:template>
    et de mettre une priorité supérieur sur les templates contenu dans "feuille1"..mais comme j'ai fait vite, je l'ai mis sur l'include!!!

  7. #7
    Membre éclairé Avatar de snoop
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2003
    Messages : 354
    Par défaut
    ok merci

  8. #8
    Membre émérite
    Inscrit en
    Octobre 2005
    Messages
    847
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 847
    Par défaut
    de rien!! sinon ton pb est ok ou pas?

  9. #9
    Membre éclairé Avatar de snoop
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2003
    Messages : 354
    Par défaut
    oui, ça marche avec les priorités...

    sinon il y a aussi la possibilité de mettre le <xsl:include> juste après l'application du template :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?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="monTag">
    <div style="color:green;font-size:20pt;">
    <xsl:apply-templates/>
    </div>
    </xsl:template>
     
    <xsl:include href="../feuille1.xsl"/>
     
    </xsl:stylesheet>
    Je trouve quand même ce comportement pas tellement cohérent puisque les includes sont censés avoir la même importance que les templates situés dans la feuille appelante !

  10. #10
    Membre émérite
    Inscrit en
    Octobre 2005
    Messages
    847
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 847
    Par défaut
    ça peut aussi venir de ce que tu as dans le "feuille1.xsl" ....mais c vrai que j'ai déja eu des cas inexpliqués avec les include, c pour ça j'ai tt de suite pensé que c'était les priorités.

  11. #11
    Expert confirmé
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Par défaut
    Bonjour,

    Citation Envoyé par snoop
    Je trouve quand même ce comportement pas tellement cohérent puisque les includes sont censés avoir la même importance que les templates situés dans la feuille appelante !
    Pas exactement, la seule fonction du <xsl:include> est d'inclure des templates d'une autre feuille de style, il ne change en rien les règles qui régissent le choix des templates à appliquer ; là, en l'occurrence, comme tu as plusieurs templates candidats, le processeur XSLT "choisit" le dernier du fichier (la spécification du W3C n'oblige pas les processeurs à afficher une erreur dans ce cas de figure). En principe, <xsl:include> sert à inclure les templates communs à une série de transformations, et donc à la factorisation du code...

    Si tu veux choisir le template à appliquer, utilise les priorités comme on te l'a expliqué, ou mieux, utilise <xsl:import> et choisis les templates à appliquer avec <xsl:apply-templates> et <xsl:apply-imports>.
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  12. #12
    Membre éclairé Avatar de snoop
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2003
    Messages : 354
    Par défaut
    Merci GrandFather pour ces précisions !

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

Discussions similaires

  1. Inclusion feuille css dans xsl
    Par Glork dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 25/07/2013, 21h30
  2. Réponses: 2
    Dernier message: 20/08/2007, 14h08
  3. Réponses: 10
    Dernier message: 26/10/2006, 12h25
  4. [XSLT] probleme de parcourt deux fichiers xml dans xsl
    Par coucouA dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 23/07/2006, 20h32
  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