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][PHP]pb avec xsltproc et PHP


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut [XSLT][PHP]pb avec xsltproc et PHP
    Bonjour à tous,

    Je travaille sur un fichier XSL dans lequel je souhaite faire intervenir des bouts de code PHP.
    Lorsque j'ouvre mon XML, il fait appel à ma feuille de style XSL qui ne génère pas d'erreur mais qui ne m'interprète pas le PHP qu'elle contient.

    Par exemple quand je fais un include (vu sur xmlfr.org:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <xsl:processing-instruction name="php">
    	<xsl:text>include ("</xsl:text>
    	<xsl:value-of select="normalize-space(entete.html)"/>
    	<xsl:text>");</xsl:text>
    </xsl:processing-instruction>
    je me retrouve avec une source qui ne contient pas la ligne include "entete.html" (ce qui est normal puisque c'est PHP et que c'est censé être interprété par le serveur) mais qui n'est pas interprété donc il n'y a rien sur ma page.

    Ceci pour toutes mes fonction PHP, par exemple après j'utilise une fonction PHP qui me compte le nombre de fichier dans un dossier mais elle non plus n'est pas interprétée.

    Quelqu'un aurait une piste à me donner?

  2. #2
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

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

    comment lances-tu la transformation précisément ?

  3. #3
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut
    merci à toi GrandFather de me répondre.
    tu parles de la transformation XML/XSL? si c'est le cas je fais ceci (rien de plus banal) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?xml version="1.0" encoding="iso-8859-1"?>
    <?xml-stylesheet href="plan_site.xsl" type="text/xsl" ?>
    sachant que plan_site.xsl est la feuille XSL qui contient le code que j'ai mis dans le message précédent.
    J'ai essayé un truc du style type="text/xsl+php" mais ça me fait un peu n'importe quoi (et surtout aucun de mes include ne marche).

  4. #4
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut
    Personne ne sait comment faire pour éxecuter du PHP qui se trouve dans un fichier XSL???

  5. #5
    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 : 48
    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
    C'est surtout que ce n'est pas trop dans ce sens qu'il faut voir les choses

    Normalement on fait appel au xslt via du php pour produire du html (ou un autre xml) à la limite on produit du PHP avec du xslt et on interprete ensuite le code produit.
    Il y a peut être moyen d'utiliser du php autrement mais dans ce cas il faudra faire avec les extension du processeur utilisé.
    Plus qu'a aller regarder la doc de celui ci

  6. #6
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut
    Je m'arrache les cheveux dessus le problème depuis hier et j'en vois pas le bout donc je pense que je vais tester la solution : je génère mon xslt depuis le php, ça sera plus simple je pense, ... je pensais plus précisément .

    J'ai mis à jour EasyPHP pour qu'il prène en compte le PHP5 en suivant les conseil de la FAQ d'EasyPHP (comme ça je peux, normalement, utilisé xsltproc sans avoir à modifié quoi que se soit dans le fichier de config.
    Or lorsque je lance mon script PHP, j'ai pas d'erreur mais par contre j'ai une page blanche. Voici mon script PHP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php 
    $image=mt_rand(1, 100)); // numéro d'image au hasard
    
    //$resultat prend le résultat de l'application de plan_site.xsl (avec l'image aléatoirement choisie) sur plan_site.xml
    $resultat = `xsltproc --param image "'$image'" plan_site.xml plan_site.xsl`;
    //ce qui s'affiche à l'écran
    echo $resultat;
    Je vois d'où le problème peut venir sachant que j'ai bien testé avec phpinfo et je suis bien en PHP 5.1.3.

  7. #7
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut
    Il y a quelque chose que je ne comprends pas : j'ai mis à jour mon PHP pour le passer du 4 vers le 5 afin de pourvoir utiliser l'extension XSL et lorsque je fais ça :
    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
    // Chargement du document XML
    $xml = new DOMDocument;
    $xml->load('plan_site.xml');
     
    // Chargement de la feuille de style
    $xsl = new DOMDocument;
    $xsl->load('plan_site.xsl');
     
    // Création du processeur XSLT
    $proc = new XSLTProcessor;
     
    //Affectation de la feuille de style
    $proc->importStyleSheet($xsl);
     
    // Transformation du document XML selon la feuille XSL
    echo $proc->transformToXML($xml);
    comme indiqué sur php.net, j'ai une fatal error disant : Class 'XSLTProcessor' not found.
    Je comprends plus là...

  8. #8
    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
    Tu as chargé et installé la librairie en question ?
    http://fr.php.net/manual/fr/ref.xsl.php

  9. #9
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut
    Bingo ! !
    J'aimerais que tu m'expliques un truc alors :
    Ils disent
    PHP 5 inclut l'extension XSL par défaut
    mais il faut tout de même télécharger les fichiers libxml, ... et les "installer" pour faire fonctionner le XSL, pourquoi?

    PS : mon problème est résolu mais j'attends simplement la réponse à cette question pour mettre le tag Résolu.

  10. #10
    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
    Cette ligne concerne la version Unix de PHP, de plus la librairie XSL en elle-même est bien incluse par défaut, c'est la libxslt qui lui sert de support qui ne l'ai pas (et qui est elle un élément externe à PHP).

    De plus n'oublis pas que tu travailles dans une partie CVS de PHP autrement, c'est une librairie encore en développement, et il est possible que la doc ne soit pas tout à fait à jour...

  11. #11
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut
    Merci pour ton aide Swoög car je commençais à désespérer et pour ton explication car je commençais à ne plus rien comprendre
    Merci à toi aussi grand-père ainsi qu'à Erwy

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

Discussions similaires

  1. [XSLT]Probléme avec une fonction php dans un fichier xsl!
    Par Mo_Poly dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 29/10/2007, 07h32
  2. Réponses: 5
    Dernier message: 14/06/2006, 16h35
  3. limit et temps d'execution avec oracle et PHP
    Par dor_boucle dans le forum Oracle
    Réponses: 20
    Dernier message: 10/12/2005, 14h31
  4. Réponses: 2
    Dernier message: 19/08/2004, 17h12
  5. Pb d'execution de requete avec un script php
    Par ythierrin dans le forum Requêtes
    Réponses: 3
    Dernier message: 22/08/2003, 14h34

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