Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > XML > XSL & XSLT
XSL & XSLT Forum d'entraide pour les extensions XSL et XSLT permettant de manipuler vos documents XML à l'aide de feuilles de style et de transformations avec PHP. Avant de poster -> tutoriels XSL et XSLT
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/03/2006, 17h37   #1
Expert Confirmé
 
Avatar de trotters213
 
Inscription : janvier 2005
Messages : 2 572
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Gard (Languedoc Roussillon)

Informations forums :
Inscription : janvier 2005
Messages : 2 572
Points : 2 605
Points : 2 605
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 :
`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.
__________________
Pensez au tag
Les règles du Forum

Dev. Web : FAQ (X)HTML/CSS | Tutos (X)HTML | Tutos CSS

PHP : FAQ PHP | Tutos PHP | Benchmark PHP 5

SQL : Cours SQL
trotters213 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2006, 17h56   #2
Rédacteur/Modérateur
 
Avatar de gorgonite
 
Homme Nicolas Vallée
Ingénieur Système
Inscription : décembre 2005
Messages : 9 772
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Vallée
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Ingénieur Système
Secteur : Transports

Informations forums :
Inscription : décembre 2005
Messages : 9 772
Points : 14 298
Points : 14 298
essaies cela...

Code :
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
gorgonite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2006, 16h02   #3
Expert Confirmé
 
Avatar de trotters213
 
Inscription : janvier 2005
Messages : 2 572
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Gard (Languedoc Roussillon)

Informations forums :
Inscription : janvier 2005
Messages : 2 572
Points : 2 605
Points : 2 605
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?
__________________
Pensez au tag
Les règles du Forum

Dev. Web : FAQ (X)HTML/CSS | Tutos (X)HTML | Tutos CSS

PHP : FAQ PHP | Tutos PHP | Benchmark PHP 5

SQL : Cours SQL
trotters213 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2006, 16h26   #4
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
Tu as quel version de php ?
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2006, 20h35   #5
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
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 ?
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2006, 11h43   #6
Expert Confirmé
 
Avatar de trotters213
 
Inscription : janvier 2005
Messages : 2 572
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Gard (Languedoc Roussillon)

Informations forums :
Inscription : janvier 2005
Messages : 2 572
Points : 2 605
Points : 2 605
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).
__________________
Pensez au tag
Les règles du Forum

Dev. Web : FAQ (X)HTML/CSS | Tutos (X)HTML | Tutos CSS

PHP : FAQ PHP | Tutos PHP | Benchmark PHP 5

SQL : Cours SQL
trotters213 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2006, 12h28   #7
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
As-tu essayé d'appeler header() avec un content-type ? Cette fonction n'est pas utile uniquement pour les redirections ^^
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2006, 12h31   #8
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
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/
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2006, 10h55   #9
Expert Confirmé
 
Avatar de trotters213
 
Inscription : janvier 2005
Messages : 2 572
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Gard (Languedoc Roussillon)

Informations forums :
Inscription : janvier 2005
Messages : 2 572
Points : 2 605
Points : 2 605
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.
__________________
Pensez au tag
Les règles du Forum

Dev. Web : FAQ (X)HTML/CSS | Tutos (X)HTML | Tutos CSS

PHP : FAQ PHP | Tutos PHP | Benchmark PHP 5

SQL : Cours SQL
trotters213 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/03/2006, 16h21   #10
Expert Confirmé
 
Avatar de trotters213
 
Inscription : janvier 2005
Messages : 2 572
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Gard (Languedoc Roussillon)

Informations forums :
Inscription : janvier 2005
Messages : 2 572
Points : 2 605
Points : 2 605
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 :
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).
__________________
Pensez au tag
Les règles du Forum

Dev. Web : FAQ (X)HTML/CSS | Tutos (X)HTML | Tutos CSS

PHP : FAQ PHP | Tutos PHP | Benchmark PHP 5

SQL : Cours SQL
trotters213 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/03/2006, 16h25   #11
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
Est ce que ta ligne de commande marche en dehors de php ?
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/03/2006, 16h51   #12
Expert Confirmé
 
Avatar de trotters213
 
Inscription : janvier 2005
Messages : 2 572
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Gard (Languedoc Roussillon)

Informations forums :
Inscription : janvier 2005
Messages : 2 572
Points : 2 605
Points : 2 605
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 :
`xsltproc --param myParam "'$string'" produit.xml ventesvg.xsl > SVG/diagvente.svg`;
or dans mon fichier produit.xml j'ai mis :
Code :
<?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 :
<?xml-stylesheet href="" type="text/xsl"?>
ça plante tout.
je vous remercie tous pour votre aide.
__________________
Pensez au tag
Les règles du Forum

Dev. Web : FAQ (X)HTML/CSS | Tutos (X)HTML | Tutos CSS

PHP : FAQ PHP | Tutos PHP | Benchmark PHP 5

SQL : Cours SQL
trotters213 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h23.


 
 
 
 
Partenaires

Hébergement Web