Page 1 sur 1

problème avec XsltProcessor suite php 5.0.4 vers 5.0.5-3

Posté : 03 nov. 2005, 16:55
par h2o
Mon hébergeur vient de faire la mise à jour de php 5.0.4 vers 5.0.5.

Voir le phpinfo : http://levertpays.jexiste.be/info.php5

Depuis lors, le code ci-dessous ne fonctionne plus.
// chargement de la source xsl
$xsl = new DomDocument;
$xsl->load('document.xsl');
// chargement de la source xml
$xml = new DomDocument;
$xml->load('feuilledestyle.xml');
// configuration du transformateur
$proc = new XsltProcessor;
// attachement des règles xsl
$proc->importStylesheet($xsl);
// attachement des paramètres
$proc->setParameter("", "param01", 1);
$proc->setParameter("", "param02", 10);
// transformation
$doc= $proc->transformToDoc($xml);
// sortie du document
print $doc->saveXML();
Le script :

1. Charge un document xml
2. Charge un document xsl
3. Transforme le document utilisant des paramètres
4. Affiche le résultat.

Pas de message d'erreur : l'affichage de la page s'arrête.
Après quelques tests, j'ai constaté que c'est au niveau de la ligne :
$proc = new XsltProcessor; 
que le (premier) problème semble ce poser.

J'ai relu le manuel et je ne vois pas où se situe mon erreur.

Posté : 03 nov. 2005, 17:01
par rami
Essaies de rajouter des parenthèses à tes constructeurs:
// chargement de la source xsl
$xsl = new DomDocument();
$xsl->load('document.xsl');
// chargement de la source xml
$xml = new DomDocument();
$xml->load('feuilledestyle.xml');
// configuration du transformateur
$proc = new XsltProcessor();
// attachement des règles xsl
$proc->importStylesheet($xsl);
// attachement des paramètres
$proc->setParameter("", "param01", 1);
$proc->setParameter("", "param02", 10);
// transformation
$doc= $proc->transformToDoc($xml);
// sortie du document
print $doc->saveXML();

Posté : 03 nov. 2005, 17:11
par h2o
Les parenthèses étaient présentes d'origine.
Avec ou sans en php 5.0.4 = ok.
Avec ou sans en php 5.0.5 = bad.

Je dis php 5.0.5, mais c'est peut-être un oubli de librairie chez mon provider. Quoique le phpinfo n'afficher rien de particulier.

Notez que php DOM fonctionne correctement (j'ai penser d'abord à un manque complet de fonctionnalités xml).
Je réalise un log xml des visites utilisant php dom et ce log fonctionne parfaitement.

Posté : 03 nov. 2005, 17:16
par rami
Dans ton phpinfo(), je ne vois pas la librairie libxslt.

Posté : 03 nov. 2005, 17:22
par h2o
Bien vu, je le signale "tout de go" à mon provider...

Posté : 03 nov. 2005, 18:53
par h2o
Merci à Rami : c'était bien une librairie manquante.

Mon provider a fait le nécessaire.

Posté : 03 nov. 2005, 18:57
par rami
De rien ;)