Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > XML > DOMXML
DOMXML Forum d'entraide pour l'extension DOMXML permettant de manipuler des documents XML en PHP 4 (approche DOM). Avant de poster -> tutoriels DOMXML
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 12/02/2006, 17h28   #1
m@t
Membre régulier
 
Inscription : octobre 2004
Messages : 172
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 172
Points : 99
Points : 99
Par défaut [DOMXML] Utilisation de DOM/DomXML

Bonjour,

Je souhaite utiliser DOM XML pour transformer un document xml avec un document xsl .. j'ai essayé pas mal de méthodes.. Ce qui m'embête c'est quand cherchant sur Internet des exemples d'implémentations de cette méthode, ils sont quasiment tous différents ... et évidement je n'arrive à en faire fonctionner aucun...

Voilà le code que j'utilise :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
$DomXmlFile = DOMDocument::load($file);
 
$DomXslTrans = DOMDocument::load('./styles/PJEML.xsl');
 
//création du processeur xslt
 
$proc = new XSLTProcessor;
 
//le processeur xslt dispose de la transformation xslt			
 
$proc->importStyleSheet($DomXslTrans);
 
// le résultat de la transformation XSLT envoyé au client
 
print $proc->transformToXML($DomXmlFile);
Voilà l'erreur renvoyé :

Citation:
Fatal error: Call to undefined function: load() in /homepages/12/d141864718/htdocs/cilma/filtre.php on line 13
Bon je me suis dit que je n'avais certainement pas la bonne extension d'installé, mais pourtant après avoir fait un phpinfo() pour m'en assurer, j'ai l'air d'avoir l'API nécessaire ... aussi bien en local que sur mon serveur (j'ai essayé sur les deux)...

Voilà la partie concernant DOMXML :

Code X :
1
2
3
4
5
6
7
8
9
10
domxml
DOM/XML 	enabled
DOM/XML API Version 	20020815
libxml Version 	20611
HTML Support 	enabled
XPath Support 	enabled
XPointer Support 	enabled
DOM/XSLT 	enabled
libxslt Version 	1.1.7
libxslt compiled against libxml Version 	2.6.11

Après pas mal d'essais... je n'ai toujours rien pu afficher ... [/code]
m@t est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/02/2006, 23h06   #2
Rédacteur
 
Avatar de siddh
 
Inscription : novembre 2005
Messages : 3 879
Détails du profil
Informations personnelles :
Âge : 36

Informations forums :
Inscription : novembre 2005
Messages : 3 879
Points : 4 270
Points : 4 270
dans certaines versions de php (4 et quelques je crois) il faut mettre un chemin absolu vers le fichier xml et vers le xsl.
__________________
Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

Cours | FAQ | Sources Javascript
Cours | FAQ | Sources PHP
Mes Articles
siddh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/02/2006, 23h15   #3
m@t
Membre régulier
 
Inscription : octobre 2004
Messages : 172
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 172
Points : 99
Points : 99
Oui c'est ce que j'ai remarqué

Finalement, j'arrive à un résultat avec ce code :

Code :
1
2
3
4
5
 
$xmldoc = domxml_open_file("algebre.xml");
$xsldoc  = domxml_xslt_stylesheet_file ("PJEML.xsl");
$result  = $xsldoc->process($xmldoc);
print $result->dump_mem();
Toutefois, plus aucun de mes accents ne passent, ni les entités représentant des symboles mathématiques que j'utilisais comme ∈ ε , etc Je suppose que pour ce qui est des accents il faudrait que j'utilise l'encodage utf-8 .. c'est ce que j'ai essayé de faire .. mais là plus aucun résultat, cela me renvoe une erreur php ... Si quelqu'un a une idée ?

Pour ce qui est des symboles mathématiques ... il ya bien MathML ... mais même en ayant cherché un peu je ne vois pas trop comment l'utiliser simplement ...

Il y aussi un rendu beaucoup moins joli qu'avant (le sommaire au début n'est plus exact) mais je pense que cela devrait pouvoir être améliorer avec le xsl et css ...

Merci d'avance pour votre aide
m@t est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2006, 00h21   #4
Rédacteur
 
Avatar de siddh
 
Inscription : novembre 2005
Messages : 3 879
Détails du profil
Informations personnelles :
Âge : 36

Informations forums :
Inscription : novembre 2005
Messages : 3 879
Points : 4 270
Points : 4 270
as tu mis un encoding dans ton prologue de ton fichier xml ?
__________________
Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

Cours | FAQ | Sources Javascript
Cours | FAQ | Sources PHP
Mes Articles
siddh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2006, 00h38   #5
m@t
Membre régulier
 
Inscription : octobre 2004
Messages : 172
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 172
Points : 99
Points : 99
Oui oui dans mon fichier xml et xsl j'utilise encoding="ISO-8859-1" ...
m@t est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2006, 07h34   #6
Rédacteur
 
Avatar de siddh
 
Inscription : novembre 2005
Messages : 3 879
Détails du profil
Informations personnelles :
Âge : 36

Informations forums :
Inscription : novembre 2005
Messages : 3 879
Points : 4 270
Points : 4 270
regardes les fonctions utf8_encode et utf8_decode
__________________
Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

Cours | FAQ | Sources Javascript
Cours | FAQ | Sources PHP
Mes Articles
siddh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2006, 11h22   #7
m@t
Membre régulier
 
Inscription : octobre 2004
Messages : 172
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 172
Points : 99
Points : 99
Effectivement cela fonctionne en utilisant utf8_decode


Code :
print utf8_decode($result->dump_mem());
m@t 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 04h36.


 
 
 
 
Partenaires

Hébergement Web