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

Bibliothèques et frameworks PHP Discussion :

[XSL] Création de fichiers SVG avec PHP


Sujet :

Bibliothèques et frameworks PHP

  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 [XSL] Création de fichiers SVG avec PHP
    tout le monde.
    J'aimerais pouvoir créer des fichiers SVG en utilisant PHP.
    Pour cela j'applique un script XSL à un fichier XML en utilisant xsltproc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    `xsltproc --param myParam "'$string'" produit.xml ventesvg.xsl > SVG/diagvente.svg`;
    Le problème c'est qu'en faisant ceci, le fichier en sortie (diagvente.svg) contient simplement le code XML de produit.xml : le script XSL ne s'applique pas.
    Quelqu'un sait comment faire?
    d'avance.

  2. #2
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 679
    Points
    18 679
    Par défaut
    essaies cela...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $xml_filename = "actif.xml";
    $xsl_filename = "trombi.xsl";
     
    $xsl = new XSLTProcessor();
    $xsl->importStyleSheet(DOMDocument::load($root.$xsl_filename));
    echo $xsl->transformToXML(DOMDocument::load($root.$xml_filename));
    mais cela demande d'avoir la librairie xsl installee... si je me souviens bien
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  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 gorgonite.
    J'ai trouvé des sites pour télécharger la librairie en question (libxslt) mais pour python, pas pour php ou alors c'est pour des systèmes Unix (je sais honte à moi je tourne sous XP)...
    Il n'y aurait pas tout simplement une erreur de syntaxe dans mon code que j'aurais laissé filer?

  4. #4
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Tu as quel version de php ?

  5. #5
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    Question bête (je ne connais pas SVG à part ce qui s'est dit ici) : as-tu envoyé (si c'est nécessaire) le bon header ?

  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
    tout d'abord à vous tous.
    Pour la version de PHP, j'utilise PHP 5 (inclut avec EasyPHP v2).
    Je n'ai pas besoin de header étant donné que je ne fait aucuine redirection (je souhaite faire apparaitre le SVG dans ma page donc je fais ceci :
    Le problème ne se passe pas à l'affichage puisque si je crée un SVG en dur et que je l'affiche, ça marche. Le problème viens du traitement du fichier XML par le fichier XSL qui ne se fait pas ; ou même s'il se fait, le résultat n'est pas redirigé sur la sortie que je demande (SVG/diagvente.svg).

  7. #7
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    As-tu essayé d'appeler header() avec un content-type ? Cette fonction n'est pas utile uniquement pour les redirections ^^

  8. #8
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Citation Envoyé par trotters213
    merci gorgonite.
    J'ai trouvé des sites pour télécharger la librairie en question (libxslt) mais pour python, pas pour php ou alors c'est pour des systèmes Unix (je sais honte à moi je tourne sous XP)...
    Il n'y aurait pas tout simplement une erreur de syntaxe dans mon code que j'aurais laissé filer?
    Ces commentaires pourront t'intéresser :
    http://us3.php.net/manual/fr/ref.xsl.php#51506
    http://us3.php.net/manual/fr/ref.xsl.php#58035
    http://us3.php.net/manual/fr/ref.xsl.php#59823

    Pour windows, les dlls de libxslt :
    http://www.zlatkovic.com/pub/libxml/

  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
    encore une fois à voous, j'ai pris les libraires et je vais tester le header, si je vous tiens au courant de l'évolution des choses.

  10. #10
    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
    j'ai de nouveau essayé avec les commentaires et les librairies de Mr N. mais sans résultat : je désespère ...
    En ce qui concerne le header, j'ai essayé de faire ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    header("Content-type: image/svg+xml");
     
    ...
     
    `xsltproc --param myParam "'$string'" produit.xml ventesvg.xsl > SVG/diagvente.svg`; 
    //cette ligne est censée me créer un fichier SVG
     
    $resultat = `xsltproc --param myParam "'$string'" produit.xml vente.xsl `;
    //cette ligne met dans $resultat le code source de la page que j'affiche
    echo $resultat;
    }
    mais la page ne m'affiche plus rien, je suppose que j'utilise mal le header, mais j'ai du mal à cerner son utilité là (normalement je m'en sert pour des redirection).

  11. #11
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Est ce que ta ligne de commande marche en dehors de php ?

  12. #12
    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 viens de comprendre d'où le problème vient (après avoir testé chacune de vos solutions ).
    C'est tout bête en fait : dans mon code PHP je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    `xsltproc --param myParam "'$string'" produit.xml ventesvg.xsl > SVG/diagvente.svg`;
    or dans mon fichier produit.xml j'ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?xml-stylesheet href="vente.xsl" type="text/xsl"?>
    donc il m'interprète produit.xml avec vente.xsl et non ventesvg.xsl
    Donc le problème n'est plus le même, le problème maintenant c'est que si je marque
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?xml-stylesheet href="" type="text/xsl"?>
    ça plante tout.
    je vous remercie tous pour votre aide.

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

Discussions similaires

  1. création d'un fichier pdf avec php
    Par crati dans le forum Langage
    Réponses: 3
    Dernier message: 12/03/2009, 10h55
  2. Création de fichier json avec PHP
    Par versus68 dans le forum Langage
    Réponses: 1
    Dernier message: 02/06/2008, 11h56
  3. [DOM] création de fichier XML avec PHP
    Par fleuveblanc dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 17/12/2007, 17h36
  4. [DOM] création de fichier XML avec PHP
    Par cortex007 dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 09/12/2007, 11h31
  5. générer un fichier svg avec le bon encoding
    Par TOM-Z dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 24/08/2005, 17h39

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