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 :

[PHP] passage de paramètres [XSLT 1.0]


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre éclairé Avatar de tigunn
    Homme Profil pro
    Développeur de bug
    Inscrit en
    Janvier 2003
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de bug

    Informations forums :
    Inscription : Janvier 2003
    Messages : 608
    Points : 658
    Points
    658
    Par défaut [PHP] passage de paramètres
    Bonjour,
    J'utilise xsl:import pour surcharger les feuilles de style de la TEI; pour cela j'utilise une 3ème xsl définit ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?xml version="1.0" encoding="UTF-8"?>
    	<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    		<xsl:import href="adresse_serveur/tei/Stylesheets/xhtml/tei.xsl"/>
    		<xsl:import href="./affichage.xsl"/>
    	</xsl:stylesheet>
    Or, je voudrais pouvoir définir dynamiquement adresse_serveur; j'ai procédé comme suit: Sur ma page php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $xq = new xqueryBP();
    $fragment = $xq->getFragment($ref_bib, $num_frag);
    $xml=new DOMDocument();
    		$xml->loadXML('<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="'.PATH_APPLICATION.'/templates/affichage_fragment.xsl"?>'.$fragment);
     
    		$xsl=new DOMDocument();
    		$xsl->load(PATH_APPLICATION.'/templates/affichage_fragment.xsl', LIBXML_NOCDATA);
     
    		$proc = new XSLTProcessor();
    		$proc->setParameter('', 'path_appli', '/home/www/dev');
    		$proc->importStylesheet($xsl);
    Dans affichage_fragment.xsl :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?xml version="1.0" encoding="UTF-8"?>
    	<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    		<xsl:import href="$path_appli/tei/Stylesheets/xhtml/tei.xsl"/>
    		<xsl:import href="./affichage_fragment_BP_diplo.xsl"/>
    	</xsl:stylesheet><xsl:param name="path_appli"/>
    Cela ne fonctionne pas;et retourne les erreurs suivantes:
    Warning: DOMDocument::load() [function.DOMDocument-load]: Extra content at the end of the document in /home/web/dossiers-flaubert.dev/templates/affichage_fragment_diplo.xsl, line: 6 in /home/web/dossiers-flaubert.dev/templates/affichage_fragment_v4.php on line 68

    Warning: XSLTProcessor::importStylesheet() [function.XSLTProcessor-importStylesheet]: compilation error in /home/web/dossiers-flaubert.dev/templates/affichage_fragment_v4.php on line 72

    Warning: XSLTProcessor::importStylesheet() [function.XSLTProcessor-importStylesheet]: xsltParseStylesheetProcess : empty stylesheet in /home/web/dossiers-flaubert.dev/templates/affichage_fragment_v4.php on line 72
    Warning: XSLTProcessor::transformToXml() [function.XSLTProcessor-transformToXml]: No stylesheet associated to this object in /home/web/dossiers-flaubert.dev/templates/affichage_fragment_v4.php on line 161
    Comment faire pour passer un paramètre à mon fichier xsl pour définir dynamiquement le chemin de la feuille de style a surcharger?

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 567
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 567
    Points : 21 635
    Points
    21 635
    Par défaut
    Cela n'est pas possible en XSLT 1.0 à ma connaissance.

    On est tout de même censé savoir quelles stylesheets on veut inclure, au moment où on écrit la stylesheet elle-même.

  3. #3
    Membre éprouvé Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Points : 1 247
    Points
    1 247
    Par défaut
    Par contre, il est possible d'éditer la feuille de style à la volée avec l'API DOM.

    Si la transformation se fait sur navigateur par processing-instruction, il pourrait être intéressant de profiter de la réécriture d'URL pour que l'édition à la volée soit transparente !

    -Alain

  4. #4
    Membre éclairé Avatar de tigunn
    Homme Profil pro
    Développeur de bug
    Inscrit en
    Janvier 2003
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de bug

    Informations forums :
    Inscription : Janvier 2003
    Messages : 608
    Points : 658
    Points
    658
    Par défaut
    Résolu en utilisant des chemins relatifs.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 23/08/2006, 21h51
  2. [PHP-JS] Passage de paramètre de Javascript vers fonction Php
    Par winnie82 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 13/07/2006, 10h06
  3. passage de paramètre en php sans formulaire
    Par cout dans le forum Langage
    Réponses: 6
    Dernier message: 30/05/2006, 15h45
  4. [PHP-JS] passage de paramètre
    Par Darkyl dans le forum Langage
    Réponses: 12
    Dernier message: 04/04/2006, 12h54
  5. appel d'une page php et passage de paramètres via un SRC
    Par yoda_style dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 26/01/2006, 20h54

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